Home » Excel VBA Rangeオブジェクト » セル数式 » VBAでMID関数・FIND関数を使った数式を入力する

VBAでMID関数・FIND関数を使った数式を入力する

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2105 ビルド14026.20308 Microsoft Store)

「特定のセルにMID関数 VBA」
といった検索キーワードでアクセスがありました。

VBAを使って、MID関数を使った数式をセルに入力するには、どのようなコードを書けばいいのかを探していらしたのでしょうか。

[スポンサードリンク]

VBAでMID関数を使った数式を入力するサンプル

以下のSubプロシージャを実行すると、アクティブなワークシートのB1セルに、数式「=MID(A1, 4, LEN(A1))」が入力されます。

Sub MID関数を使った数式を入力する()
 Range("B1").Formula = "=MID(A1, 4, LEN(A1))"
End Sub

セルに手入力する数式を、先頭の「=」も含んだ形で、VBAから見た場合には単なる文字列として、Range.Formulaプロパティを使って設定すればOKです。

MID関数とFIND関数を使った数式を入力したかったのでは?

「特定のセルにMID関数 VBA」
と検索なさった方が探していたのは上記のような例ではなく、他の関数たとえばFIND関数を組み合わせた数式を入力する、Excel VBAのコードを探していらしたのではないかと想像しています。

MID関数とFIND関数を使った数式

A1セルに「舞黒 花子」のように、姓と名の間に全角スペースが必ず氏名が入力されているときに、
  =MID(A1, FIND(" ", A1)+1, LEN(A1))
という数式をB1セルに手入力すれば、B1セルには名前の「花子」だけが出力されます。

こういった「"」(ダブルクォーテーション)の使われている数式をExcel VBAから入力するにはどうすればいいのかを探していらしたのではないかと私は想像しています。

VBAでMID関数とFIND関数を使った数式を入力するサンプル

以下のSubプロシージャを実行すると、アクティブシートのB1セルに、数式「=MID(A1, FIND(" ", A1)+1, LEN(A1))」が入力されます。

Sub MID関数とFIND関数を使った数式を入力する()
 Range("B1").Formula = "=MID(A1, FIND("" "", A1)+1, LEN(A1))"
End Sub

ポイントは、FIND関数の第1引数です。

「"」を指定するために、Excel VBAのコードとしては「""」とダブルクォーテーションを2つ書く必要があります。

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » セル数式 » VBAでMID関数・FIND関数を使った数式を入力する

「セル数式」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.