種ヶ島

いろいろなエッセイを書いてます。

マクロでセルに関数式を入力する方法


スポンサーリンク

この関数式をセルに入力したいです。

=IF(AND(MONTH(A1)>=6,MONTH(A1)<=11),"上期","下期")

 

・セルに入力したい関数をダブルコーテーション ”” で囲む
・セルA1の部分に変数を使いたい時は、" & iraibiseru & " のようにダブルコーテーションで囲む
・単語を使う時は、
 "上期" を
 " & """上期""" & " のようにダブルコーテーションで囲む

 

【例え】

Sub kkkk()
Dim iraibiseru As Variant
iraibiseru = Range("A1").Address(RowAbsolute:=False, ColumnAbsolute:=False)

Range("B1") = "=IF(AND(MONTH(" & iraibiseru & ")>=6,MONTH(" & iraibiseru & ")<=11)," & """上期""" & "," & """下期""" & ")"
End Sub

 

セルA1に日付が入力されていて、セルB1に日付が上期か下期かを判別する関数式を入力します。

セルA1をマクロで判別して、セルB1に「上期」と言う単語を入力のではなく、セルB1に判別する関数数式を入力する方法です。

 

関数式では、単語を入力する時にダブルコーテーションで囲めばいいのですが、マクロで単語を認識させるには下記のようにややこしくなります。

 "上期" を
 " & """上期""" & " のようにダブルコーテーションで囲む

なので、はじめはExcelのセルに普通に関数を書きます。
それをVBAにコピペします。
テキストエディタなどに " & """上期""" & " を書いておきます。
テキストエディタの文字の部分を書き換えます。上期を「りんご」などのように必要な文字に書き換えて、VBAの必要の部分に書き換えます。

 

" & """りんご""" & " これが書き慣れればいいですが、最初は分かりにくいので、書き換えた方が良いと思います。