概要
Excel VBAのIF文のコンパイルエラーについて質問します。
IF文を構文通り記述したつもりですが、コンパイルエラーが発生しました。
以下のソースコード内で文法エラーとなる箇所はありますか?
なお、私は初めてVBAを触っているため、VBA特有の文法についての知識が乏しいです。
(普段は主にC言語を使用しています)
実現したいこと
①エクセルシート内の横7マス×縦9マスの結合されたセルをダブルクリックすると、ファイルを開くダイアログが表示され、縦横比率を維持せずに結合されたセルの大きさに合わせて画像が挿入される。
②エクセルシート内の横11マス×縦14マスの結合されたセルをダブルクリックすると、ファイルを開くダイアログが表示され、縦横比率を維持したまま画像が挿入される。
発生したエラーメッセージ
該当のソースコード
VBA
1Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean) 2Dim myF As Variant 3Cancel = True 4 5If (Target.Columns.Count = 7 And Target.Rows.Count = 9) Then 6 7 myF = Application.GetOpenFilename _ 8 ("jpg bmp tif png gif,*.jpg;*.bmp;*.tif;*.png;*.gif", , "画像の選択", , False) 9 If myF <> False Then 10 11 With ActiveSheet.Shapes.AddPicture(Filename:=myF, LinkToFile:=False, _ 12 SaveWithDocument:=True, Left:=Target.Left, Top:=Target.Top, _ 13 Width:=-1, Height:=-1) 14 15 '==================ここから=========================================== 16 .LockAspectRatio = False '縦横比率を維持しない 17 .Width = Target.Width 18 .Height = Target.Height 19 '==================ここまで=========================================== 20 21 '===============中央へ調整 22 .Top = Target.Top + Target.Height / 2 - .Height / 2 23 .Left = Target.Left + Target.Width / 2 - .Width / 2 24 25 End With 26 27ElseIf (Target.Columns.Count = 11 And Target.Rows.Count = 14) Then 28 29 myF = Application.GetOpenFilename _ 30 ("jpg bmp tif png gif,*.jpg;*.bmp;*.tif;*.png;*.gif", , "画像の選択", , False) 31 If myF <> False Then 32 33 With ActiveSheet.Shapes.AddPicture(Filename:=myF, LinkToFile:=False, _ 34 SaveWithDocument:=True, Left:=Target.Left, Top:=Target.Top, _ 35 Width:=-1, Height:=-1) 36 37 '===============中央へ調整 38 .Top = Target.Top + Target.Height / 2 - .Height / 2 39 .Left = Target.Left + Target.Width / 2 - .Width / 2 40 41 End With 42 43Else 44 45 '===============何もしない 46 47End If 48 49End Sub 50 51
補足
参考にしたサイト:https://kenchik.info/2021/07/01/excel_autopic
使用ソフト:Office Home and Business 2019
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/01/17 17:57