第29回 VBA会登壇者 和風スパゲティのレシピさん
(いきなりExcelでプレゼン!A列を縦方向に結合して簡単スライド!)
(そうそうFunctionの使いどころ!それよそれ)
(変数やプロシージャ名は日本語のほうが分かりやすいのぉ!)
(確かに1つのプロシージャでやろうと思えば不可能じゃないよね)
(「処理のまとまりに見出しをつけて1行に要約する」ここ大事!)
(この「詳しく見る」「詳細を閉じる」がプロシージャー!
整理整頓の道具。なくてもできるが使うと便利!)
(実際のコードはこんな感じ。VBAではボタンポチで開くことはできない。)
もっと本格的なコードに行く前に、、、
これだけは覚えたいショートカット3つ
Shift+F2・・・・プロシージャージャンプ(正確には定義位置に移動)
Ctrl+Shift+F2・・直前の場所に戻る
Ctrl+スペース・・インテリセンス
Shift+F2 を押すと、プロシージャー本体にジャンプできる。
変数利用位置で実施すると、Dimでその変数の宣言位置にジャンプ。
(Worまで入力してCtrl+スペースでリスト表示。TABキーで選択決定できる)
まずは書ききる。そのあと整理整頓するためにプロシージャー分割を使う。
(書ききるサンプルコードのためのシート)
(必要条件を入力してボタンを押すと、抽出される)
(ドバっと書き切ったコード)
(メイン処理コード。まずは流れを細かく解説。)
(チャットからの指摘でCursor追加で4兄弟に増員w)
(ここからDisplayAlarts=Falseの熱い議論w)
ここからリアルタイムプロシージャー作成。
呼び出すときはCall。
これもSub化。
(ここでByVal/ByRefの話・・・結論。初心者は気にすんな!w)
変数名を変えて汎用化!・・さらに!削除開始行も引数に!
ここからFunction
次は、最終行を取得するコードを部品化。
(スパ曰く「最終行取得コードはVBA界の薔薇!」)
=の右側を切り取って部品化するときは
SubじゃなくてFunction
目的ではなく「やり方」で理解すれば早い!
(これを聞いたしゃあは、ある名言を思い出す)
これを汎用化
戻り値の型を書いて、Function名と同名変数に値を代入。
次に、Worksheet存在確認のFunction
さらにさらに
「関数は短いとダメ」・・って思わなくてよい。
ここから大手術・・・だけど簡単
実行条件を満たすかどうか?の判定を関数化する。
関数化するとこんな感じ。
続いて罫線も
ループの中身を関数化するとより分かりやすくなる。
ここでコンパイルクラッシュしたので、出来上がりコードに変更。
(さすがスパさん、3分クッキング方式だw)
(メインルーチン、めっちゃ短くなった!)
まとめ
Excelファイルダウンロード
おまけ
(こんやはゅぇ。さんROMやった・・・)
(と思ったら質問来た(^^)
Ctr+Jは、Ctrl+スペースとほぼ同じだが、選択肢が1つしかなくてもCtr+Jは候補リストが表示される。
和風さんブログ
リンク
この記事が気に入ったらサポートをしてみませんか?