セルに数式を入力するマクロの注意点
2023年06月21日
前に投稿した以下の記事では、
配列からセルに格納する際に1文字目が=(イコール)でメモリ不足が発生することを書いた。
「VBAマクロでログを取り込んで解析したらメモリ不足と表示された件」
今回は、VBAを使ってセルに数式を入力する際に
変な文字を入れてメモリ不足にならないよう気を付けましょうという話。
配列からセルに格納する際に1文字目が=(イコール)でメモリ不足が発生することを書いた。
「VBAマクロでログを取り込んで解析したらメモリ不足と表示された件」
今回は、VBAを使ってセルに数式を入力する際に
変な文字を入れてメモリ不足にならないよう気を付けましょうという話。
プログラムって作ったときは完璧と思っていても
使っているうちに出るわ出るわの想定外。
問題が発覚した数式は、フォルダへジャンプするハイパーリンク関数。
cells(行,列).formula = "=hyperlink(パス,表示名)"の形。
数式を配列に格納して、一気に張り付けたら途中で止まってる。
止まってるところのパスを確認したら、全角の”が入ってた。。。
半角の"はエスケープ処理をしていたけど、
全角の”が自動的に半角に変換されてエラー吐くのは予想できず。
(そもそも"はファイル名やフォルダ名に使えないけど)
修正については、全角の”を判定するのが難しかったので、
「パス」を半角に変換して"が入っていたら
ハイパーリンクにしないという方法にしました。
ちなみにメモリ不足が発生したVBAは以下の記事のものです。
「ファイル・フォルダ一覧取得ツール_VBAファイルリスト編」
修正版ソースは こちら。
PR
Comment