最近の記事

  • 固定された記事

ExcelVBAコードを生成するプロンプトのコツと解説(全19項目)

最近では、Yahoo知恵袋などのプラットフォームでも、生成AIが自動で回答を提供することが増えています。そのため、実際に生成AIをコード作成に活用している方も多いのではないでしょうか。 私もExcelVBAのコード作成時に、ChatGPTにプロンプト(命令文)を投げてコードの素案を作成してもらうことがよくあります。これまでに投げたプロンプトの数は、軽く1,000回以上にのぼります。 しかし、単に「~がしたい。」といったシンプルなプロンプトだけでは、自分の意図通りのコードが返

¥100
割引あり
    • システムから出力したデータをExcelVBAで一瞬で整形する

      基幹システムや会計システム等からExcelやCSV形式でデータを出力することも多いと思います。 それらのシステムから出力したデータは、通常は何も加工されておりませんので、フィルターもかかっておらず、列幅すら調整されていない(=データの内容がそのままでは文字列等が途切れて全文視認できない)ことも多いでしょう。 何か単発的な必要(例えば問い合わせ対応)のために、対象のデータ行を発見するには、データを出力してフィルター等で加工を加えます。 単発的な必要のために行うときは、凝った加

      • VBAでプロシージャを部品(パーツ)化して使い回す

        VBAのコードを沢山書いていくと、「前にもこの処理書いたな、、、」ということがあると思います。 例えば、シートの最終行を取得するとか、画面更新をOFFにするとか、そういうコードです。 前にも似たようなものを書いていた場合に、その過去のコードからコピーして現在作成中のコードにペーストするのも、そこそこ大変ですよね。 何より、どのマクロ有効ブックにそのコードを書いていたかを思い出すのも一苦労だと思います。 そういう場合は、プロシージャ自体をそもそも細分化(パーツ化、部品化)し

        • ExcelVBAで選択範囲のURLに一括でハイパーリンクを設定する

          ExcelのセルにURLがある場合に、ハイパーリンクを設定したいときは、URLを入力したセルをF2で編集モードにして何も編集せずにEnterすれば、自動的にハイパーリンクが設定できます。 しかし、下記画像例のようにハイパーリンクを設定したいURLを含むセルが複数ある場合は、セルの1つ1つをF2で編集モードにしてEnterするのは大変ですよね。 そんなときは、URL化したいセル範囲を選択しながら、下記のコードを実行します。 コードはこちらです。 Sub sb選択範囲のUR

        • 固定された記事

        ExcelVBAコードを生成するプロンプトのコツと解説(全19項目)

        ¥100

          VBAで選択中の画像の縦横比を100%にする

          Excelでマニュアル作成等を行い、スクリーンショットを画像で貼ることがよくあると思います。 この画像の縦横比がおかしくなっていて、画像内の文字が変につぶれていることがありませんか? 特に画像と図形をグループ化していると、ちょっとした動作で縦横比がズレてしまいがちです。 そんなときに、選択中の画像の縦横比を100%に戻すマクロを紹介します。 Sub sb選択中の画像の縦横比を100パーセントにする() If (TypeName(Selection) <> "

          VBAで選択中の画像の縦横比を100%にする

          ExcelVBAで定数の代わりにEnum使う& Enumの自動作成

          VBAコードを作成する際に、よく列数を数字(Long型)で指定することがありますが、列数のみ(例:1や5など)を記載しても実際のデータのどんなデータのある列を指定したのか分からず、データソースの列に変動が生じた場合にコードのメンテナンスに困りますよね。 例えば元々4列目にあったのが、5列目に変更になったとして、置換機能で変更したくても、その列を指す趣旨のみでしか「4」という数値がコード内で使用されていない保証がないからです。 変わりに定数(Const)を利用する方法もあり

          ExcelVBAで定数の代わりにEnum使う& Enumの自動作成

          WordVBAのテンプレート(Normal.dotm)への保存と失敗

          ExcelVBAの場合は、汎用的に利用したいコードは、個人マクロブック等に保存して利用する方も多いと思います。 WordVBAの場合は、標準テンプレート(Normal.dotm)に保存します。 ただし、標準テンプレート(Normal.dotm)は破損したり、保存失敗することが多いです。(個人的な体感) OneDriveを使用していない私の職場では保存失敗することはほぼないのですが、OneDraveを使用している私用のPCの場合は、結構な割合で標準テンプレート(Normal.

          WordVBAのテンプレート(Normal.dotm)への保存と失敗

          VBAの組み込み定数をデータ型として使う

          VBAにもデータ型があります。例えば下記のように。 Dim userName As StringDim i As LongDim dueDate As DateDim fileExists As Boolean データ型は宣言しないこともできますが、基本はデータ型を明示するべきで、Variant型は原則使用しないことをお勧めします。 なお、あまりよく知られていないと思うのですが、データ型にはVBAで用意されている組み込み定数(列挙体)もデータ型として利用することが可能で

          VBAの組み込み定数をデータ型として使う

          VBAのプロシージャ名・変数の命名ルールについて

          私が書くVBAコードは、プロシージャ名は基本日本語を利用しています。 理由は「和風スパゲティのレシピ」様の記事(変数を日本語にすればプログラミングが上達する)に影響を受けているためです。 ただし、完全に日本語にすると、Subプロシージャや変数を呼び出ししたいときに、インテリセンスがうまく働かず、不便です。 そのため、プロシージャ名の先頭(Subプロシージャなら先頭に「sb」、Functionプロシージャなら先頭に「zf」)をつけて、インテリセンスで呼び出しし易いようにしてい

          VBAのプロシージャ名・変数の命名ルールについて

          WordVBAでセクション区切り等の編集記号を一括削除する

          Wordで、セクション区切りや手動改ページ等の編集記号を一括削除したいことがあると思います。 標準機能の置換機能を利用して編集記号(例:^m →手動改ページ)を覚えていれば置換可能ですが、覚えるのも面倒ですよね。 そこで、個人的によく利用する編集記号はWordVBAで削除すると便利です。 Sub sbアクティブドキュメントのセクション区切り削除() Call sbドキュメントの特殊記号削除(ActiveDocument, "^b") '^b:セクション区切りEnd

          WordVBAでセクション区切り等の編集記号を一括削除する

          WordVBAで文書中に特定のフォント色の使用状況をチェックする

          WordVBAで、何かの処理を実行する前に、特定のフォントカラー(例えば赤色)が使われているかチェックしたい場合があります。 (例えば、その処理で特定の条件に該当する場合に、同じフォントカラーにする処理をする場合は、元々使っていた色と重複すると、処理実行によって そのフォントカラーになった部分か区別がつかないと困りますよね。) 下記のコードで、文書中に特定のフォントカラーが使われているかチェックを行うことができます。 Sub sb赤色のフォントが使われているかチェックする

          WordVBAで文書中に特定のフォント色の使用状況をチェックする

          WordVBAでドキュメント名を取得する

          ExcelVBAでは、色々なコードが公開されていますが、WordVBAでは参考になるもサイトが少ないので、自身の勉強も兼ねて、いくつかのコードを公開していきたいと思います。 これから紹介するのは、WordVBAでドキュメント(文書)のファイル名を取得するコードです。 Sub sb文書名取得テスト() Debug.Print zfDocumentName(ActiveDocument, a_拡張子:=True) 'Macroテスト.docm Debug

          WordVBAでドキュメント名を取得する