最近の記事

  • 固定された記事

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

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

¥200
    • VBA開発する人でも意外と知らないこと

      VBAの開発をされる方も、最近は書籍を読み込むのではなく、特定の業務に必要な知識だけをネットや生成AIから得て学ぶ方が増えているようです。しかし、そうした学習方法だけでは、VBAの基礎的なルールや知識が抜け落ちることがあります。 そこで、今回は「基礎的でありながらも見落としがちなVBAのポイント」を独断と偏見でご紹介します。もしかしたら、あなたの知らないことも含まれているかもしれません。 1.一行で複数の宣言を行う場合、それぞれに型を明示する必要があるVBAでは、データ型

      • マクロを実行する7つの方法

        VBAでSubプロシージャを呼び出して使う方法は、いくつもあります。 1.マクロボタンに登録して実行するこれが一番オーソドックスな方法です。他の方法では開発タブを表示したり、ショートカットキーを割り当てたりしてユーザー自身でそのショートカットキーを覚えておく必要があったりします。 マクロに詳しくないユーザーにもマクロを使わせるなら、マクロ有効ブックにマクロボタンを設置して実行してもらいましょう。 なお、画像例では単にボタンとしていますが、実行するマクロの内容がユーザーに伝

        • JTCやコンサルで代々引き継がれてきたExcelのブックにありがちなこと

          JTCやコンサルで代々引き継がれてきたブック等にありがちなことを書いてみます。 Excelだけではなく、 WordファイルやPowerPointにも共通する内容も一部あります。 (具体的には、目次の「3.トリミング部分を削除していない」と「6.ブックのプロパティの会社名やタイトルが古いor実際と異なる」がWordやPowerPointでも共通する内容です。) 1.見えない大量の図形が大量に隠れている中身は大したこのがないのに、なぜか容量が重いブック。 調べてみると、高さ・

        • 固定された記事

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

        ¥200

          個人マクロブック等のプロシージャをリボンに登録して使う

          個人マクロブックに保存している、使用頻度の高いマクロはリボンやクイックアクセスツールバーに登録できます。 ※ここでいうリボンの設定は各ユーザーごとによる、マクロ有効ブックにあるコードを他のユーザーにも使用してもらう用途では使えません。 この記事では、リボンへのマクロの登録方法と実際に私が登録しているリボンの画像を紹介しようと思います。 リボンへのマクロの登録方法何らかのExcelブックを開いた状態で、リボンを表示します。(開発タブを開いていますが、どのタブでも構いません。

          個人マクロブック等のプロシージャをリボンに登録して使う

          VBAを開発する人のための汎用プロシージャ9選

          こちらの記事:個人マクロブック等に保存して利用するVBAの汎用プロシージャで個人マクロブックやアドインにコードを記載して、アクティブブック等に対して利用する汎用プロシージャを紹介しました。 「個人マクロブック等に保存して利用するVBAの汎用プロシージャ」の記事は、開発する人以外にも配布することで、便利に利用していただけます。 ※基礎的なマクロの実行方法等は、利用者に最低限、身につけていただく必要はありますが…。 今回の記事は、利用する人というよりも、VBAの開発する人にと

          VBAを開発する人のための汎用プロシージャ9選

          Excelで数値のはずのセルに文字列が含まれてないかチェックする

          このニュースを見たことがありますか? 朝日新聞デジタル:「エクセル任せで点検不十分」 マイナス収支で「△三角」と誤入力 記事の内容としては、マイナス金額の部分を表示形式で△で表記(#,##0;"△ "#,##0)していたのではなく、文字列として△と数値を入力していたので、SUM関数等の合計から漏れてしまったいた、ということです。 どうしても単位や負の記号をつけたいときは、Excelでは表示形式で表示上のみで単位や記号をつけないと、合計等の関数で集計をすることができません。

          Excelで数値のはずのセルに文字列が含まれてないかチェックする

          Excelで小数点を含むセルをチェックするマクロ

          Excelで小数点を含む数値が入力されるべきではないブック(シート)があっても、何らかの理由で小数点以下の数値が含まれている場合があります。 原因は、入力者がROUND関数等での端数処理を失念していたり、単にチェック漏れしている等のパターンがあります。 そのExcelブックを管理する側としては、小数点が入力されてしまった以上、対象のセルを特定して、小数点を排除するしかありません。 しかし、具体的にどのセルで小数点が含まれているか探すのは、骨が折れます。 小数点が入力され

          Excelで小数点を含むセルをチェックするマクロ

          フィルターで非表示となっている行を無視して、列幅を自動調整する

          Excelで列幅をセルの文字列に合わせて自動調整するには、列番号の境界線をダブルクリックすれば、自動調整されます。 なお、フィルターで一部の行が非表示になっている場合は、列番を自動調整したときに、下記のように非表示になっている行も含めて列幅が調整されます。 長い文字が入力された行が非表示の場合に、最長の文字が入力されたセルに合わせて自動調整されるため、上記画像のように余分な幅が生まれます。 フィルター箇所のみを印刷等で横幅1ページで印刷する場合に、なるべく文字が小さくなら

          フィルターで非表示となっている行を無視して、列幅を自動調整する

          個人マクロブックに登録して汎用的に利用するVBAコード8選

          VBAのコードは、マクロ有効ブックにコードを記載して、業務で利用する特定のブック(マクロ有効ブック)に紐づいて利用するだけではなく、個人マクロブックやアドインにコードを記載すれば、マクロ有効ブック以外のExcelブックに対してもマクロを利用できます。 (私は、自分で作成したコードを主に自分のみで利用しているため、個人マクロブックにコードを保存しています。他者にコードを配布する場合は、アドインの方が良いかもしれません。) つきましては、個人マクロブックに保存しておくと便利なプ

          個人マクロブックに登録して汎用的に利用するVBAコード8選

          システムから出力したデータをExcelVBAで一瞬で加工する

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

          システムから出力したデータをExcelVBAで一瞬で加工する

          VBAでマクロを部品(パーツ)化して使い回す

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

          VBAでマクロを部品(パーツ)化して使い回す

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

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

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

          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)への保存と失敗