top of page

​タグ一覧

配列処理(73)

階層化フォーム(33)

ファイル操作(28)

開発事例(22)

シート・セル操作(18)

図形操作(13)

コード自動生成(10)

ユーザーフォーム(9)

文字列操作(8)

設計思想(7)

開発効率化(6)

数学(6)

GAS(5)

アニメーション(5)

技術解説(4)

講座実施報告(5)

イミディエイトウィンドウ(4)

Googleスプレッドシート(4)

副業(4)

クリップボード(4)

条件付き書式(4)

その他(4)

ココナラ(3)

小説(3)

HTML(3)

JavaScript(3)

OneDrive(2)

イベントプロシージャ(2)

Enum(2)

PDF(2)

フリーランス(2)

リスキリング(2)

Outlook(2)

介護(2)

Discord(2)

シフト表(2)

LookerStudio(2)

日報(2)

カレンダー(2)

罫線(2)

パズル(2)

小ネタ(2)

コード解説(2)

クラスモジュール(2)

ステータスバー(1)

コード解析(1)

バックアップ(1)

可変長引数配列(1)

ブック処理(1)

スクレイピング(1)

スプレッドシート(1)

coconala(1)

リボン登録マクロ(1)

QRコード(1)

実行予約(1)

給与計算(1)

VBA不使用(1)

リボン(1)

超勉強会(1)

スピログラフ(1)

図名描写(1)

連想配列(1)

溶接ロボット(1)

保育士(1)

楽天市場(1)

経理(1)

医療(1)

文書作成(1)

発注書(1)

ショートカット(1)

WebAPI(1)

色操作(1)

スーパー開発ショートカット(1)

ライブラリ処理(1)

放課後等デイサービス(1)

児童福祉支援(1)

学校(1)

UI(1)

CAD(1)

カーソル操作(1)

IkiKaiso2.xlam|コード生成グループ「直接コード生成」の解説

更新日:1月11日

概要

 書籍「Excel VBA開発を超効率化するプログラミングテクニック」の特典であるIkiKaiso2.xlamのリボン登録マクロの解説のための特設ページです。


出版社の書籍のページ⇒https://gihyo.jp/book/2024/978-4-297-14023-6


リボン登録マクロ全体解説ページ⇒https://www.softex-celware.com/post/ikikaiso2


 本ページではIkiKaiso2.xlamの「コード生成」グループの「直接コード生成」ボタンの使い方を解説します。

直接コード生成

 別の記事の「静的コード生成」は次のようなSheetオブジェクトやRangeオブジェクトを変数として参照するようなコードを自動生成する処理でした。

静的コード生成の実行例

 今回の「直接コード生成」は選択したセルを直接参照するようなコードを自動生成します。

直接コード生成の実行例


解説

 用途

 セル範囲を直接参照するコードを自動生成する


 まず上記の図で作成したコードの用途として、次のように「特定の変数にセル値を格納する」部分だけを選択セルから自動生成したりします。

直接コード生成の実行例2

 「この変数にはこのセルの値を格納する」というのがすでに決まっている場合は、「セルを選択してボタンを押すだけ」でコードが自動生成されるので、コーディングの効率化に繋がります。


 具体的に使用している例の動画は下記のようになります。



 使い方(単一セルの場合)

 選択セルが単一セルの場合、「直接コード生成」で生成できるコードは下記の4通りです。すべて「B2」セルを参照している場合とします。(ワークシートオブジェクトは上記例に沿って「Sheet3」としておきます。)

① Sheet3.Range("B2").Value

② Sheet3.Range("B2").Offset(1, 0).Value

③ Sheet3.Range("B2")

④ Sheet3.Range("B2").Offset(1, 0)

 

 基本的に②は使う場面がほとんどないのですが、①③④は使用する場面がそれぞれ異なってきます。

「直接コード生成」をクリックすると2つの質問のメッセージが表示されますので、それぞれの「はい」「いいえ」の回答に基づいて上記の4パターンのコードが生成されます。

単一セルでの質問と分岐結果


 具体的用途は下記の通りです。

①はセルから値を取得するだけの場合で用います。

②はセルを変数で参照しておいて、そのセルに値を入力したりなど後で何か処理をする場合に用います。

③は表のヘッダーで基準セルから1つ下のセルを左上の基準として二次元配列を出力するためのセルを参照したりする場合で用います。


 このほかにもその場に応じた用途がいろいろ出てきますが、これらの用途に合わせて別々のコードを生成したりします。

単一セルでの用途一覧


 使い方(複数セルの場合)

 複数セルの場合は2つ目の質問メッセージ「1つ下にオフセットしますか?」は出てきません。代わりに「複数セル範囲の1セル目だけにしますか?」と質問が追加されます。

 具体的に、質問に対する全分岐と結果をまとめると次のようになります。

複数セルでの質問と結果一覧

 

 すべて「C2:G2」セルを選択している場合とします。(ワークシートオブジェクトは上記画像に合わせて「Sheet5」としておきます。)

 質問に回答して分岐した結果で生成されるコードをまとめると次のようになります。

① Sheet5.Range("C2:G2")(1).Value

② Sheet5.Range("C2:G2").Value

③ Sheet5.Range("C2:G2")(1)

④ Sheet5.Range("C2:G2")


 複数セルの場合②のように「Range("C2:G2").Value」とすると単一の値ではなく配列が返ってきます。上記画像のように「セルからファイルパスを取得する場合」は次の図のようなコードになってきます。

 一緒に解説もつけていますが、もし「(1)」をつけないと配列となるのでエラーメッセージが表示されます。

複数セルでの値取得の注意点

 上記の様に「単一セル」の場合だけでなく「複数セル」の場合も考慮したコード生成を行っています。

 ちなみに「複数セル」の場合は下方向にオフセットする、などのようなことは滅多に存在しないので質問は出てこないようになっています。

Excel VBAによる業務自動化・ツール開発をご検討の方へ

​"脱Excel"の前に、現状のExcelの潜在能力を120%発揮してみませんか?

Softex-Celware

​インボイス登録番号:T5810983887134

  • Facebook
  • Twitter
  • YouTube

©2023 softex-celware。Wix.com で作成されました。

bottom of page