- ベストアンサー
Excelのマクロで自動的に貼り付けしたい
こんにちは。 フォルダに写真が約50枚入っています。 この写真を一度にExcelの表に貼り付けしたいと思っています。 縦1列に貼り付ける方法は他のHPなどをみてわかったのですが、 自分がやりたいのは 写真1は「A1」セルに、写真2は「C1」セルに 写真3は「A5」セルに、写真4は「C5」セルに 以下続く というように横に貼っては折り返しというようにしたいのですが、 マクロで次の写真を貼る位置をどのように指定すればよいのか分かりません。 縦一列に貼る場合でしたら、Offset(5)としてセルを5つ縦に飛ばして張るようにはできています。 なんとか横に貼っては折り返しというようにしたいのですが教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
フォルダにある写真のファイルはVBAで順次捉えられたのカナ。 少し難しい課題だが。 >一度にExcelの表に貼り付けしたいと・・ 一度にではなく、順次自動で位置をずらして・・だろう。 横方向には1セル間をおき、縦方向は間4行おきにするのですね。 ーー VBAで上記ルールで値A(何でも良い)をセット(代入)するロジック を考え、コードの書き方の練習をしましたか。こういうロジック学習のところがVBA学習の第二ステップだよ。 他にもすっきりしたロジックだあるかもしれないが、とりあえず1例。 下記コードのTopなどの実例・やり方はマクロの記録をとればわかる。 挿入ー図ーファイルから、の操作。 ーーー Sub test04() For i = 1 To 50 c = ((i - 1) Mod 2) + 1 If c = 2 Then c = c + 1 '-- If i = 1 Or i = 2 Then r = 1 Else r = Int((i - 1) / 2) * 5 End If '-- 'ここへ写真を貼り付ける処理が入る。 '写真をシート上に取り入れた後、その位置を下記Cells(r, c)セルのLeft,Topに変更し,Width,HeightもセルのWidth,Heightに変更する。 'Width,Heightは操作者が操作か、VBAで規定する。 Cells(r, c) = i Next i End Sub
その他の回答 (1)
- DOUGLAS_
- ベストアンサー率74% (397/534)
>縦一列に貼る場合でしたら、Offset(5)としてセルを5つ縦に飛ばして張るようにはできてい るのでしたら、「Offset」のところにカーソルを持って行き、[F1] キーを押下してください。 [Offset プロパティ] のヘルプが開きますよね。 そこで [Range オブジェクトの Offset プロパティ] をクリックしましょう。 >expression.Offset(RowOffset, ColumnOffset) >ColumnOffset・・・オフセットする範囲の列数を指定します。 と出ていませんか? つまずいたらヘルプミーです。[F1] キーを押下する習慣を付けましょう。