見出し画像

第29回 VBA会登壇者 和風スパゲティのレシピさん

画像1

画像2

(いきなりExcelでプレゼン!A列を縦方向に結合して簡単スライド!)

画像3

(そうそうFunctionの使いどころ!それよそれ)

画像4

(変数やプロシージャ名は日本語のほうが分かりやすいのぉ!)

画像5

(確かに1つのプロシージャでやろうと思えば不可能じゃないよね)

画像6

(「処理のまとまりに見出しをつけて1行に要約する」ここ大事!)

画像7

(この「詳しく見る」「詳細を閉じる」がプロシージャー!
 整理整頓の道具。なくてもできるが使うと便利!)

画像8

(実際のコードはこんな感じ。VBAではボタンポチで開くことはできない。)

もっと本格的なコードに行く前に、、、

これだけは覚えたいショートカット3つ

Shift+F2・・・・プロシージャージャンプ(正確には定義位置に移動)
Ctrl+Shift+F2・・直前の場所に戻る
Ctrl+スペース・・インテリセンス

画像9

画像10

Shift+F2 を押すと、プロシージャー本体にジャンプできる。
変数利用位置で実施すると、Dimでその変数の宣言位置にジャンプ。

画像11

(Worまで入力してCtrl+スペースでリスト表示。TABキーで選択決定できる)

まずは書ききる。そのあと整理整頓するためにプロシージャー分割を使う。

画像12

(書ききるサンプルコードのためのシート)

画像13

(必要条件を入力してボタンを押すと、抽出される)

画像20

(ドバっと書き切ったコード)

画像15

(メイン処理コード。まずは流れを細かく解説。)

画像16

(チャットからの指摘でCursor追加で4兄弟に増員w)

画像17

(ここからDisplayAlarts=Falseの熱い議論w)

ここからリアルタイムプロシージャー作成。

画像19

画像19

呼び出すときはCall。


画像20

これもSub化。

(ここでByVal/ByRefの話・・・結論。初心者は気にすんな!w)

画像21

変数名を変えて汎用化!・・さらに!削除開始行も引数に!

画像22

画像23

ここからFunction

次は、最終行を取得するコードを部品化。

画像24

(スパ曰く「最終行取得コードはVBA界の薔薇!」)

画像25

=の右側を切り取って部品化するときは
SubじゃなくてFunction

目的ではなく「やり方」で理解すれば早い!
(これを聞いたしゃあは、ある名言を思い出す)

画像26

画像27

これを汎用化

画像28

画像29

戻り値の型を書いて、Function名と同名変数に値を代入。

次に、Worksheet存在確認のFunction

画像31

画像31

さらにさらに

画像33

画像32

「関数は短いとダメ」・・って思わなくてよい。

ここから大手術・・・だけど簡単

実行条件を満たすかどうか?の判定を関数化する。

画像34

関数化するとこんな感じ。

画像36

画像35

続いて罫線も

画像37

画像39

ループの中身を関数化するとより分かりやすくなる。

画像38

画像41

ここでコンパイルクラッシュしたので、出来上がりコードに変更。
(さすがスパさん、3分クッキング方式だw)

画像40

(メインルーチン、めっちゃ短くなった!)

まとめ

画像42

Excelファイルダウンロード

おまけ

画像43

(こんやはゅぇ。さんROMやった・・・)

画像44

(と思ったら質問来た(^^)

画像45

Ctr+Jは、Ctrl+スペースとほぼ同じだが、選択肢が1つしかなくてもCtr+Jは候補リストが表示される。

画像46

和風さんブログ

リンク

画像49

画像47

画像48



この記事が気に入ったらサポートをしてみませんか?