前提・実現したいこと
For文内で宣言した変数を引数として使いたいのですが、エラーが起きてしまい使えない状態です。
For内で宣言しFor内で使用しようとしているのでスコープの問題でもないでしょうし
引数の型は合ってますし、なにより同じ関数呼び出しの引数で複数回使っているのにも関わらず
使えるところと使えないところがあったりしてもう訳が分かりません。
どなたかお力添えお願いします。
発生している問題・エラーメッセージ
実行時エラー:'1004' アプリケーション定義またはオブジェクト定義のエラーです
問題なのは Cells(y, x) のy ,x が使用できないところだと思います
該当のソースコード
VBA
1Sub TestForIf() 2 3Dim num As Integer: num = 180 4 5 With Worksheets("Input") 6 For y = 0 To .Cells(1, 2).Value - 1 7 For x = 0 To .Cells(2, 2).Value - 1 8 Call SetImage( _ 9 Worksheets("Input").Cells(2 + y, 8 + x).Value, _ 10 Cells(y, x), _ 11 num) 12 'Worksheets("Input").Cells(2 + y, 8 + x).Valueの変数x,yは生きている 13 'Cells(y, x)の変数y,xが使えない 14 'Cells(y, x)をCells(1, 2)とかにすると解決する 15 Next 16 Next 17 End With 18 19End Sub
呼び出し先の関数です
恐らくこちらに問題は無いと思います
Sub SetImage(index As Integer, cell As Range, rot As Integer) Dim targetCell As Range: Set targetCell = cell Dim rotate As Integer: rotate = rot Dim filePath As String: filePath = "C:\Users\mushipan0929\Downloads\Image_" & index & ".png" With Worksheets("Output") .Shapes.AddPicture _ filePath, _ True, _ True, _ targetCell.Left, _ targetCell.Top, _ targetCell.Width, _ targetCell.Height .Shapes(.Shapes.Count).rotation = rotate End With End Sub
試したこと
エラー'1004'で検索して出てきた問題点などはあらかた確認しました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/06 10:38
2020/12/06 10:42