[[20211122111702]] 『「=IFERROR(」で始まる数式をマクロで打ち込みたax(り) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『「=IFERROR(」で始まる数式をマクロで打ち込みたい。』(り)

『=IFERROR(VLOOKUP〜』の関数をマクロを使ってとあるセルに書き込みたいです。

【環境】
Macbook Pro 2013 MacOS Mojave 10.14.6
Excel for Mac 16.51

【コード】

 Dim i As Long
 Dim str1 As String, str2 As String
str1 = "=IFERROR(VLOOKUP(C"
str2 = ",sheet!$B$5:$D$1733,3,FALSE),"")"
 For i = 16 To 45
 Cells(i, 8) = str1 & i & str2
 Next i

【症状】
Cells(i,8)〜の行でエラー1004を吐く (iの値は16止まり)
str1の「=」を外したら問題なく動く

ワークシートを複数人で共有している為、他者が書き込んだ値をリセットするために
元々打ち込んであったIFERROR関数をマクロで打ち直したいのです。

「=」をただの文字列として認識させるためにはどうすべきでしょうか?

< 使用 Excel:Office365、使用 OS:MacOSX >


https://excel-ubara.com/excelvba1r/EXCELVBA510.html
(参考) 2021/11/22(月) 11:37

ご参考。

https://www.google.com/search?q=vba+%E6%95%B0%E5%BC%8F+%E3%83%80%E3%83%96%E3%83%AB%E3%82%AF%E3%82%A9%E3%83%BC%E3%83%86%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3&rlz=1C1GCEU_jaJP956JP957&oq=VBA%E3%80%80%E6%95%B0%E5%BC%8F%E3%80%80%E3%81%A0&aqs=chrome.2.69i57j0i4i512l2j0i4i30l3j0i

(ひまつぶし) 2021/11/22(月) 11:40


 >「=」をただの文字列として認識させるためにはどうすべきでしょうか?

 意味がよくわからないけど、
 頭に'を追加してやればいいだけ。
(にくちゃんねる) 2021/11/22(月) 11:43

数式をセルに代入するなら
http://officetanaka.net/excel/vba/cell/cell03.htm
(tkit) 2021/11/22(月) 11:44

# 重複しますけど、書いたので投稿します。

>str1の「=」を外したら問題なく動く
数式ではなく、単なる文字列とみなされます。
エラーにはなりませんが、
正しい数式に見合う文字列が書き込まれたわけではありません。

すでに指摘があるように、文字列のなかでダブルクォーテーションそのものを使うときは
注意が必要です。
""と二つ続けてはじめてひとつの" とされます。
str2 = ",sheet!$B$5:$D$1733,3,FALSE),"")"

str2 = ",sheet!$B$5:$D$1733,3,FALSE),"""")"
とする必要があります。

なお、繰り返しを使ってもいいですが、
Sub test2()
  Range("H16:H45").Formula _
   = "=IFERROR(VLOOKUP(C16,sheet2!$B$5:$D$1733,3,FALSE),"""")"
End Sub
でもよいと思います。(シート名を変えています。またアクティブシートに書き込む前提です)

(γ) 2021/11/22(月) 12:08


みなさん早いご回答ありがとうございます。

tkitさん、γさん
Formulaプロパティ初耳でした、勉強になります!

今回は16行目から45行目まで書き込むということと、
書き込むセルの行数とVLOOKUPの参照先行数が比例していてほしかったため
繰り返しを使ってみました。
γさんからご提案いただいたコードでもFormulaプロパティであればちゃんと比例してくれるということですね。
(り) 2021/11/22(月) 12:27


そうです。
(γ) 2021/11/22(月) 12:31

ああ、Formulaだからということではありません。
Valueでも、相対参照がきちんと機能するように読み替えてはくれます。
コードの明瞭化、可読性向上のためにも、
プロパティは正確に指定したほうがよいと思います。
(γ) 2021/11/22(月) 12:40

そうなんですね、ありがとうございます!
(り) 2021/11/22(月) 13:56


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.