回答編集履歴

1 typo修正

htsign

htsign score 599

2015/04/19 16:27  投稿

※コメント欄が長くなりすぎたため新たに回答させていただきます。
コードを拝見しました。
```lang-vbscript
Set shape = ActiveSheet.Shapes.AddPicture( _
Filename:=Environ("TEMP") & "vbatemp" _
LinkToFile:=False, _
SaveWithDocument:=True, _
Left:=ActiveCell.Left + ActiveCell.Width, _
Top:=ActiveCell.Top, _
Width:=0, _
Height:=0)
```
ここでやはり「,」が抜けていますね。
お分かりになりますでしょうか。2行目は
```lang-vbscript
 Filename:=Environ("TEMP") & "vbatemp", _
```
とならなければならないはずです。
この文を1行で書いてみると分かるかと思います。
```lang-vbscript
Set shape = ActiveSheet.Shapes.AddPicture(Filename:=Environ("TEMP") & "vbatemp" LinkToFile:=False, SaveWithDocument:=True, Left:=ActiveCell.Left + ActiveCell.With, Top:=ActiveCell.Top, Width:=0, Height:=0)
Set shape = ActiveSheet.Shapes.AddPicture(Filename:=Environ("TEMP") & "vbatemp" LinkToFile:=False, SaveWithDocument:=True, Left:=ActiveCell.Left + ActiveCell.Width, Top:=ActiveCell.Top, Width:=0, Height:=0)
```
と書くことと等価です。Filenameのところが如何に異質かハッキリするでしょう。
「,」は引数はここからここまでです、とパーサ(プログラムの構文を解析する仕組み)に伝える役割を持ちます。
これを抜くとやれ「引数の数が少ない」だの「引数の型が違います」だの言われることになりますので、慣れないうちは注意して書くことが肝要です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る