Excelのセル内に入っている関数を、そのすぐ横あたりに書き出したいことがあります。該当のセルを毎度指定して毎回確認するのは面倒。そんなとき、セル内の関数が可視化できていれば、資料を見る他の人にも分かりやすいし、このブログで関数の入ったエクセル画面の貼付をする際にも便利。
Windows10からはそのための関数“Formulatext( )”がすでに用意されています。プライベートのPCはWindows10のため使用できますが、問題は会社標準機はWindows7。Windows7にはこの関数が標準装備されていないので使用できません。それでも同様の機能が欲しい。
解決策としてVBAを使用します。
Excelが開いている状態で、Alt+F11を押してマクロのコードを記述・編集するVBEを開く。
Insert > Moduleをクリック。Moduleに以下のコードを書きこむ。
Function FT(mycell As Range)
FT = mycell.Formula
End Function
(参照URL)https://www.mrexcel.com/forum/excel-questions/756432-there-excel-2010-equivalent-formulatext.html)
これで完了です。あとは通常の関数を使うのと同様、例えば
=FT(A1) ‘A1に入力されている関数情報を書き出す
こんな風に無事使えました。このFunction Procedureとは自分で処理したい内容を定義して、自分で関数を作ることができる機能だそうな。今日知りました、実行できて心躍りました。とにかく面白い。
VBAの悩みを日本語で検索してゆくと気が付いたのですが、大概複数の同じWebsiteに行き当たります。いつも重宝して利用させていただいていますが、完全に自分の欲しい答えがあるとは限りません。そんなときに英語で情報を取りに行くことで得られる解決策が少なからずあります。やはり英語は重要です。まして、Codeを読めばお互いの言っていることが分かる世界なので全世界がITを通して繋がるチャンスが多いのでしょうね。