えくせるちゅんちゅん

ことりがエクセルをちゅんちゅんするブログ

MENU

VBA

VBA開発環境(VBE)にオリジナルの機能を追加する

VBA開発を行うに当たって、特に厄介な課題の一つとして挙げられるのが「開発環境であるVBEがショボすぎる」という事である。 VBEをカスタマイズする方法は色々あるが、ここでは「開発環境(VBE)にコマンドを追加して自作のVBAプログラムを実行する」方法を…

神Excelの罫線作図支援ツールを開発する part1

VBA

今回は紙エクセル対策で必要な罫線作図ツール開発の序章です。 本記事はSpredsheets/Excel Advent Calendar 2019 の4日目の投稿です。(みんな参加してね!) (実際には12/1に公開した記事ですが) 3日目は Silloi (id:silloi) さんの「Google Spreadsheets…

SpecialFoldersの引数にString型変数を指定すると意図した通りに動かない

VBA

思わぬ挙動でびっくりしたので書き残しておく 詳しい本文はまた今度追記する。 何らかの演算をすることで、Variantに暗黙的に変換されるんだろうな。 'SpecialFoldersの引数にString型変数を指定すると誤動作する。 Sub Test_SpecialFolders() With CreateOb…

ワークシート用ユーザー定義関数は使い方を誤ると危険である

VBAで作るユーザー定義関数の第三弾。 ここまでユーザー定義関数を推しておいて今更だが、私は多用するのはオススメしていない。 今回はユーザー定義関数の何が危険なのかを説明する。

VBAのコメントの書き方の試行錯誤

VBA

当然のことではあるがプログラミングに於いて、コメントを残すことは非常に重要である。 ここでは私が個人開発をする中で「コメントを残しておいて良かった。」と思った事を、独り言として書き残しておく。 コメントを残して良かったと思う時 なぜこのように…

VBAでの広域コメントアウトの代替案

VBAにはCのような開始位置と終了位置を明示して広範囲をコメントアウトを行う記法が存在しない。 それでも広範囲コメントアウトを行いたい人のために、私はディレクティブの活用を提案したい。 VBAのコメントアウトについて まずはVBAで使える二種類のコメン…

VBAで戻り値のある複数シートをコピーする関数を作ってみた

今回はVBAで戻り値のある複数シートをコピーする関数を作ってみたので紹介します。

Outlookでメール受信者がローカルパスをクリックできるようにUNCパス化するマクロを作ってみた

Twitterにてアイディアを頂いて、昨日とは別の方法でOutlookのメール受信者がリンクをクリックできるようにするマクロを作ってみた。

Outlookでメール記載されたパスをハイパーリンク化してクリックできるようにするマクロ

Outlookでメール記載されたパスをハイパーリンク化してクリックできるようにするマクロを作ってみた。

VBAでWin32APIの64bit対応自動変換プログラムを作ってみた

愛用マクロを64bit版Excelに早急に対応させる必要が出てきたので、ソースコード上のWin32APIのDeclare文を64bit対応に自動変換プログラムを作ってみたので紹介する。 なお、Declare文の変更だけでは完全に64bit対応とはならないので、実際に使う人はちゃんと…

ワークシート用ユーザー定義関数を揮発性にする方法

今回はVBAで作るユーザー定義関数の第二弾。揮発性関数についてお話します。

VBAによる安定したワークシート用ユーザー定義関数の作り方

今回はVBAで安定したユーザー定義関数を作る方法についてお話します。

VBA関数のライブラリ名やモジュール名の省略を検知するアイディア

こんばんわ。最近自作のVBAモジュールのライブラリ化を夢見てアレコレしていることりちゅんです。 ライブラリ化を進めるに当たって、今まで適当に省略して済ませてきたモジュール名の明示が重要な課題となってきました。 そんな中、良い感じのアイディアが浮…

EnumWindowsを使って別プロセスのExcelを取得してみた

今日はVBAでWinAPIのEnumWindowsを使って別プロセスのExcelを取得する関数を作ってみました。

エクセルマクロで野生のマグロを駆逐するミニゲームを作ってみた

野良マグロを養殖して駆逐するミニゲームを作ってみたので紹介する。 前置き ソースコード 導入方法 解説 補足 まとめ 前置き まずは下記の記事をご覧いただきたい。 週刊アスキー アニメイトグループ社内の“天然マクロ”を駆逐したkintone 「天然マクロ」と…

VBAでIIF関数が全ての項を評価してしまうのは当然である

今日はVBAのIIF関数で、なぜ全ての引数を評価してしまうのか説明する。

VBAの裏技?コロンで好きな位置にブレークポイントを設置する

今回はVBAで好きな位置にブレークポイントを設置して、ストレス無く開発を進めるためのテクニックを紹介します。

VBAのStopとDebug.Assertステートメントの違い

今回はVBAのStopとDebug.Assertステートメントの違いについてお話します。

VBAのInStr関数の不思議な挙動について調べてみた

先日Twitterで教えて頂いたInStr関数の名前付き引数の不思議な挙動について情報を整理してみた。

VBAで文字列中の文字をカウントする関数を作ってみた

今回はVBAで最速で文字列に含まれる文字列の出現回数をカウントする関数を求めて色々と調査してみました。

VBAで環境に依存しないWindowsMediaPlayerの使い方

先日、フォロワーのA氏がWindowsMediaPlayerを使ったVBAで、環境依存のバグに悩んでいたので解決した話をする。

VBEでオブジェクトのどのイベントを使えば良いのか簡単に調べる方法

今回はVBEでWorksheetの全てのイベントを検知してDebug.Printするためのコードを素早く作成する方法を動画でお送りします。

XYから矩形を特定するワークシート関数を作ってみた

今回はちょっとしたユーザー定義関数を作ったので紹介します。

1から100の偶数の和を求めるワンライナー作成の軌跡

先日Twitterで話題になった「1から100の偶数の和を求めるワンライナー」に関して、VBA作成までに思考したことを整理しておきます。

Excelシートのデータ範囲を2次元配列に格納するVBA汎用関数を作ってみた Part3

今回は以前作成したセル範囲を二次元配列化する関数を改造して、非表示のセルを除外するようにしてみたので紹介します。

VBAで最速の整数型を調べてみた

今回は64bit版VBAの整数型で使えるIntergerとLongとLongLongのうち、どれが最速なのかを調べてみました。

Excelから游ゴシック体を徹底的に駆逐する Part3

游ゴシック大嫌いな同志諸君!お久しぶりです。ことりちゅんです。 ついに!ついに、Excelからレイアウトを崩さずに游フォントを完全に消し去る最強のマクロが完成しましたのでご報告申し上げます。 本記事は「Excelから游ゴシック体を徹底的に駆逐する」の…

ExcelVBAのRemoveDuplicatesの使い方を調べてみた

今回はExcelの「重複の削除」機能をVBAで実行するための「RemoveDuplicates」で、引数に配列変数を指定したい場合の使い方を調べてみました。 きっかけ 解決した方法 RemoveDuplicatesとは 調査 思いついたアイディアを試してみる ヒントがないかとググって…

VBAのApplication.Runで変数を参照渡しする方法

今回はVBAのApplication.Runを使用した場合のByRef参照渡しの方法について説明する。 ただし、本記事で紹介する方法には不明瞭な点があるため、あくまで覚えとして書き残しておく。 ※対象読者:一般的なプロシージャで使うByRefの仕組みを分かっているものと…

ExcelVBAで重複しないファイル名の生成方法について考えてみた

今回はVBAで重複しないファイル名を作成する方法について考えてみました。

プライバシーポリシー