えくせるちゅんちゅん

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

MENU

VBAの実行時エラー「無効な前方参照か、コンパイルされていない種類への参照です。」の原因と研究記録

2023年12月から2024年1月にかけて、Excel VBAで実行時エラー「オートメーションエラーです。無効な前方参照か、コンパイルされていない種類への参照です。」が多発しているようです。 更に関係あるか不明ですがVBAプロジェクトが完全に読めなくなるという事…

Microsoft365 ExcelとFormsが同期するアンケートフォームを作成する方法

本記事では、Microsoft365 Formsのアンケートフォームの回答結果を、OneDriveに保存やSharePointに保存したExcelブックへ自動的にテーブル形式で書き込ませる方法を説明します。 こちらは「Formsで収集したアンケートの結果をデスクトップExcelで読み込む方…

Microsoft365 Formsでアンケートフォームを作成する方法

本記事では、Microsoft365 の Formsでアンケートフォームを作成して、配布し、回答をExcelで開くまでの最低限の方法を説明します。 こちらは「Formsで収集したアンケートの結果をデスクトップExcelで読み込む方法」シリーズの1本目の解説記事です。 www.exce…

Formsで収集したアンケートの結果をデスクトップExcelで読み込む方法(目次)

Microsoft365の機能の一つであるFormsのアンケートフォームを使って情報を収集し、その結果をデスクトップアプリのExcelへ読み込むことで、データをVBA等で使いやすい状態にする方法を、先日Zoomで説明させて頂きました。 資料を準備せずに開催したので、本…

VBAのApplication.WaitとSleepの違い

よく Excel VBA の Application.Wait と WindowsAPIの Sleep は何が違うんですか?という質問をされることがあります。これは、疑問に思うのは無理もありません。結果だけ見れば「待つ」という同じ機能に見えます。 しかし、両者は全く異なったアプローチに…

VBAでパブリックなコンパイラ定数を定義して条件付きコンパイル制御を行う

VBA

VBAには、環境に応じてソースコードの使用する箇所を変える「条件付きコンパイル」という仕組みがある。 この記事では、独自のコンパイラ定数を新たに定義し、複数のモジュールのコンパイル制御を一括で行う方法を解説する。 よく見かけるWindowsAPIのコンパ…

なぜ個人用マクロブック(PERSONAL.XLSB)を使うのか

ExcelにはVBAで記述されたマクロを任意のブックで再利用するための常駐型のブックが存在し、これを「個人用マクロブック」あるいは「PERSONAL.XLSB」と呼ばれる。 この記事では、私がなぜ個人用マクロブックを使っているのか。どんなことに気をつけて使って…

なぜExcelでテーブルを使うのか

普段、私はテーブルを好んで使用しています。テーブルを使う理由、テーブルを使わない理由について、個人的に思いつく限りのことを書いてみました。 個人的な解釈に基づいた表現をしており、見方によっては評価が逆転することもある点にご注意ください。 テ…

2021年版 今年買って良かったもの

お久しぶりです。最近ブログ書いていなかったのでリハビリがてら、今年買って良かったものをまとめてみました。 よかったら参考にしてください。 Anker PowerCore III 10000 Wireless (ワイヤレス充電機能搭載 10000mAh 大容量 モバイルバッテリー) 【ワイヤ…

ExcelVBAでワークシートからユーザー定義関数が使える条件と隠す方法

VBAのFunctionプロシージャで宣言された関数は、Excelワークシートの数式からSUM関数等と同じように使用することが出来ます。 しかし、表示されているのにエラーとなったり、表示されていないのに使えてしまったりという、よくわからない挙動をします。 今回…

ExcelVBAはどのようにプロシージャを分割すると良いのか(前編)

概要 私がVBAでプログラミングをするときは、プロシージャを3つの階層に分けて作るように意識している。 今回は私のプロシージャ分割の考え方を紹介する。 本記事では自分が説明しやすいようにプロシージャを次の2種類に分けて表記する。 マクロ・・・ユーザ…

パソコンとスマホの音声をBluetoothイヤホンで同時に聞く方法

近年、Bluetoothイヤホンがかなり普及してきました。 以前は3.5mmイヤホンジャックがないスマホはダメだと言われたものですが、最近ではめっきり聞かなくなりました。 私は、付けたまま自由に動き回れるBluetoothイヤホン大好きです。ケーブルが椅子に引っか…

VBAでリストボックスを上下するボタンを作成する方法

VBAのユーザーフォームに配置されたリストボックスのアイテムをボタンクリックで上下できるフォームを作成したので紹介する。 作ったもの リストボックスのアイテムは複数選択・2列表示できるようにする 【追加】を押したらテキストボックスの文字列をリスト…

VBAのユーザーフォームで十字キーを押すとチェックボックスやトグルボタンがONになる問題の解決策

今日はVBAの長年の疑問であった、十字キーを押すとチェックボックスやトグルボタンが押し下げ状態になる問題の解決策を発見したので記録に残す。 問題の再現方法 解決策 何故これが解決策になるのか 1.なぜテキストボックスの入力制限はKeyDownなのにチェッ…

VBAでFunctionとProperty Getを使い分ける理由

VBAの Function と Property Get は非常に似ています。 検索して出てくる説明では、両者を何故使い分けているのか、今ひとつシックリこない人が多いと思います。 そこで、私がなぜプロパティを使い分けているのか説明します。 プロパティとは Property Get …

ブラウザにsheet.newやexcel.newと入力して素早く表計算を始めよう

ブラウザのURLに sheet.new と入力したらGoogle Spreadsheetを。excel.new と入力したらMicrosoft Excelの新規作成画面を開けることはご存知だろうか? 実は サービス名.new でサービスを開きつつ、いきなり何らかの新規作成画面を開けるWEBアプリが多数存在…

印刷物第一主義の会社で社内Wikiを立ち上げた話

私がWordやExcelによるマニュアル執筆と印刷物の配布に痺れを切らして、社内向けのWikiサイトを立ち上げたときの話をします。 概要 まず、何がどうなったのか説明すると... 前提 以前はこんな状態・環境でした。 マニュアルはメールにPDF形式で添付されて飛…

iPhone12を買ったらiPhone7が壊れたんだが?

先日、私はiPhone12 Proを購入した。 www.excel-chunchun.com 既存のiPhone7は手元に置いておき、今後も予備機として役に立ってもらうつもりだった。 ところがiPhone12を買った途端にiPhone7が壊れてしまい文鎮と化した。 いったい何が起きたのか、どうした…

iPhone7からiPhone12Proへ移行した話

iPhone7を発売と同時に買って早くも4年。 iPhone12が登場したので、色々な事情もあってiPhone12Proを購入した。 この記事は、私が購入に至るまでを綴った覚え書きである。 もし同じような人の参考になれば幸いです。

APCのUPS(無停電電源装置) SMT500J を買ってみた

無停電電源装置を新調したので覚書も兼ねて紹介しておく。 買ったもの なんのためにUPSを買ったのか 身の回りの家電の消費電力 検証結果 UPSは延命装置であって、バッテリーではないですよ 参考資料 オムロン 無停電電源装置(常時商用給電/正弦波出力) 500VA…

WinAPIの64bit化で出てくるPtrSafe、LongLong、LongPtrってなんなのさ?

Office VBA の WinAPIを64bitに対応しようとした時に絶対に覚えなくてはならないのがLongPtrである。 Declare文の64bit対応に関しては以前次のような記事を書いたが、LongPtrの置き換えの考え方に関しては説明を省略していた。 今回は64bit対応のためにPtrSa…

VBAのクラスでNewと同時に引数付きコンストラクタを起動する代替案

VBAのクラスをNewと同時に引数付きコンストラクタを起動する方法を、思いつく限りの方法をまとめておく。

次元数がわからない配列変数の処理をシンプルにするVBA関数

今回は次元数の分からない配列に対して共通の処理系で全て処理できるようにするVBA関数を作ったので紹介する。

VBAのクラスの作り方1 - 進化するRECT

VBA

この記事は、ユーザー定義型のRECTが俺俺Rectangleクラスに進化していくまでの一連の流れを解説したものである。 メモリっぽいイメージ描いて頑張って説明しているが、「自身がなんとなく納得」するために描いたもので、正確なイメージではないので注意され…

ExcelVBAで確実にWorksheet.AutoFilterを取得する関数

今回はExcel VBAでAutoFilterオブジェクトを取得する方法について調査した結果を報告します。

VBAで多重ループから脱出する方法の全て

VBA

昨日、id:Infoment さんの「多重ループからの脱出」を読んで、たまに使っているテクニックを思い出したので、紹介するついでに思いつく限りの方法を整理してみた。 infoment.hatenablog.com はじめに 一般的によく見かける多重ループからの(純粋な)脱出方法…

書評 パーフェクト Excel VBAを読んで

半年以上前に入手したタカハシさん著の「パーフェクト Excel VBA」ですが、ようやく読み終わりましたので読書感想文を書かせていただきます。 パーフェクトExcel VBA (PERFECT SERIES)作者:高橋 宣成技術評論社Amazon

ExcelVBAでBeforeSaveでApplication.DisplayAlertsが働かない

今回はTwitterで見かけたWorkbook_BeforeSaveの中でApplication.DisplayAlerts = Falseを実行しても、保存時の確認ダイアログが消えないというVBAの質問にお答えします。

ExcelVBAでオートフィルタで絞り込んだデータの行数をカウントする

ExcelVBAでオートフィルタで絞り込んだ結果、表示されているデータの行数をカウントする方法について説明する。 要望 最適解 回答例 各行の表示状態を確認して非表示のものを数える オートフィルタの設定されたセル範囲のうち、可視セルだけ絞り込んでから行…

快適なExcelライフを送るために必要な環境構築(開発者編)

前回から続きまして、筆者ことりちゅんが、快適にExcelライフを送るのに欠かせない環境構築の全貌をお見せします。 今回は開発者向けの設定を紹介していきます。従ってVBEの設定もします。 前編はこちら 概要 開発タブを表示する 左下にマクロの記録を表示す…

プライバシーポリシー