ExcelやVBA(マクロ)で困ったことリスト

困ったことを解決したリスト、ともいう。Q&A? FAQ?

多分ブログアップ用に残しておいたんでしょうけど、おそらくもう編集しないと思うのでそのまま載せちゃいますね。

Excel2016と2019がごちゃ混ぜで、もしかしたらプログラム修正で改善されているものもあるかもしれません。そもそもおま環かもしれない。


Excelでリンクの編集-リンクの解除ができない

別ブックの内容をコピーして作成したブック
シート内に別ブックへの参照は見当たらない
データの入力規則でも見当たらない
疑わしいシートを削除すればリンクの編集はグレーアウト=リンクの解除できる


Ctrl + F3 名前の管理

こちらで別ブックの内容を参照していた
削除するとリンクの解除完了


Long形の変数にSetで値を代入しようとして「オブジェクトが必要です」のエラー発生

⇒Setはオブジェクトをセットする命令なので、数値や文字列の代入に使用してはいけない。


ThisWorkbookに記述したプロシージャをモジュールで呼び出すと「subまたはfunctionが定義されていません」のエラー発生

⇒ThisWorkbook.関数名で呼び出す必要がある


セルの書式設定をVBAで行うと「アプリケーション定義またはオブジェクト定義のエラーです」

⇒シートに保護がかかっていないか要確認。保護は解除しておく


Worksheet_Changeが動かない

⇒ThisWorkbookにではなく、シートに記述すること


「Rows(cRow).Select」と「Rows(cRow).Delete」で、分かりやすく「選択行を削除しますか?」といったプログラムにしたかった。

⇒でも選択中のセルの行全体を選択させた状態で削除の命令を行っても「実行時エラー1004 RangeクラスのDeleteメソッドが失敗しました」が発生
その後すぐに削除ボタンを押すと削除成功する。最初から行を選択した状態でも削除成功
ソースから「Rows(cRow).Select」を消したらセルだけでの選択でも行を削除できるように


セルの保護したり解除したりなマクロで、セルの編集ができなくなったよ。

「変更しようとしているセルまたはグラフは保護されているため、読み取り専用となっています。保護されているセルまたはグラフを変更するには、[校閲]タブをクリックし、[変更]グループの[シート保護の解除]をクリックして保護を解除します。」
みたいなエラーが出てくるよ。
⇒セル全体を選択した状態でシートの保護を解除、右クリックして「セルの書式設定」 [保護]タブの「ロック」からチェックを外す



VBAそれなりに作れるようになったけど、未だにマクロとの違いがわからない。
そもそもVBAって、なに?