• ベストアンサー

Excelのマクロで自動的に貼り付けしたい

こんにちは。 フォルダに写真が約50枚入っています。 この写真を一度にExcelの表に貼り付けしたいと思っています。 縦1列に貼り付ける方法は他のHPなどをみてわかったのですが、 自分がやりたいのは 写真1は「A1」セルに、写真2は「C1」セルに 写真3は「A5」セルに、写真4は「C5」セルに 以下続く というように横に貼っては折り返しというようにしたいのですが、 マクロで次の写真を貼る位置をどのように指定すればよいのか分かりません。 縦一列に貼る場合でしたら、Offset(5)としてセルを5つ縦に飛ばして張るようにはできています。 なんとか横に貼っては折り返しというようにしたいのですが教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.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)
回答No.1

>縦一列に貼る場合でしたら、Offset(5)としてセルを5つ縦に飛ばして張るようにはできてい るのでしたら、「Offset」のところにカーソルを持って行き、[F1] キーを押下してください。  [Offset プロパティ] のヘルプが開きますよね。  そこで [Range オブジェクトの Offset プロパティ] をクリックしましょう。 >expression.Offset(RowOffset, ColumnOffset) >ColumnOffset・・・オフセットする範囲の列数を指定します。 と出ていませんか?  つまずいたらヘルプミーです。[F1] キーを押下する習慣を付けましょう。

関連するQ&A

  • エクセル:マクロを使って自動集計するには?

    エクセルのマクロで下記のような事をしたいのですが、どなたか教えて下さい。 セルA2~A100に数種類の商品が商品ごとに入力  されているとします。 1個しかないものもあれば10個入力されているものも あります。 セルB2~B100にはA列の商品の売上金額が入力さ れています。 そこでセルC列に商品ごとの合計売上金額を計算する事 はできませんか? 1個しかない商品はその横のC列のセルに、数個あるも のはその一番下の商品の横のC列のセルに数個の合計  を、という具合に。 よろしくお願い致します。

  • エクセルで検索と貼り付けのマクロを組みたい

    エクセルで次のようなマクロを組みたいのですがうまくいきません。 ・C5からBB6の範囲において、Aという文字が入っているセルを検索し、その4行下1列右にコピーしておいたものを値だけ貼り付ける。 検索範囲を指定したいのは同じシート内に他にもAという文字が入っているセルがあるからです。このマクロを実行すると何故かC5からBB6の範囲以外のセルを選択し、貼り付けてしまいます。どこがいけないのでしょうか。ぜひ、教えてください。お願いします。 Range("C5:BB6").Select Cells.Find(What:="A", After:=ActiveCell, LookIn:=xlValues,LookAt:= _ xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _False, MatchByte:=False, SearchFormat:=False).select Selection.Offset(4, 1).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=False

  • エクセルマクロに詳しい方

    すいません教えて下さい。  例えば、A1のセルに30、A2のセルに5 A3のセルに7 といった感じで数字があるとして どこかの列のある位置 を基準として 例えば C列の先頭から A1のセルにある 数字の分だけ色分けるマクロってどのようになるのでしょうか この場合 C1からC30までが黒 C31~35までは緑 といった具合にしたいのです。 A列に入る数字は必ずしも 一定ではありません。  できましたら、 マクロを簡単に書いて頂けると大変うれしいです。 よろしくお願いします。

  • excelで自動計算

    excelで九九の早見表のようなものを作りたいのですが・・・ ___A__B__C__D 1_____1__2__3 2__1__1__2__3 3__2__2__4__6 4__3__3__6__9 B2のセルには、A2*B1 C2のセルには、A2*C1 D2のセルには、A2*D1 B3のセルには、A3*B1 ・・・といった感じの表を作りたいのですが。 オートフィルを使って(又は自動で)さくっと簡単に作ることは可能でしょうか? B2=A2*$B$1 とやれば、縦方向にはオートフィルで1列だけうまくいくのですが、横方向にはうまくいってくれません。 2行目を全部手入力でやって、縦方向にオートフィルで出来そうなんですが、 100 X 100 以上の表を作りたいので途中でやる気がなくなります。 何かいい方法があれば、教えてください。 よろしくお願いいたします。

  • エクセルマクロで出来るでしょうか。

    マウスでクリックしたセル位置の入力内容を、別のセル位置に表示するようなマクロは出来るでしょうか?。 考えているのは、弁当注文の集計表の作成です。 A列に氏名、B列に店名、C列に品名、D列に金額と、予め入力してある表で、 当日注文する分を、個人毎に、氏名・店名・品名・金額・とクリックすれば、 同じシート内に作成した集計表に、クリックした順番に表示していくというようなものです。 予めの入力は、各列5行目から行っています。 また集計表は、F列、G列、H列、I列の5行目から下に、クリックした順番に表示できればと思っています。

  • マクロで自動チェックをしたい

    EXCELで業務上、表を作成します。チェックを目検でしているのですが、マクロでできないものかと思い投稿しました。 (1)特定の列の数字がすべて小数点1桁であること。 (2)特定の文字列が右寄せになっていること。 (3)フォントサイズが11であること。 (4)指定範囲に縦罫線・横罫線がすべてに引けていること (5)指定範囲内のセルで「###」となって文字が表示されていない箇所があるか。 このようなことを、マクロを作ってチェックができないものかと考えています。 ただ、マクロを作成するスキルがないので、サンプルマクロを教えていただけるとありがたいです。 よろしくお願いします。

  • エクセルでのマクロ:画像の貼り付け

    お世話になります。 まだマクロについて不勉強ですが、表記のことができるかどうか気になっています。 お教えください。 1 エクセルの列に A B Cと表記しておく 2 「A」「B」「C」という名前のフォルダから画像を取ってきてA BCの列の下に貼り付ける 3 新しく「D」というフォルダができた場合、エクセルの列にDを追記してさらに貼り付けていく   (クリックを押せば自動的に貼り付けれるでもよいです) できるできないでもいいのでお教えください。 よろしくお願いします。

  • Excelのマクロで()内の文字を抽出して書き出したい

    HTMLにあるテーブルの部分をコピペして貼り付けたExcelファイルがあります。 A~Cまでの3列が埋まっている状態で、D以降の列は空欄です。 C列に123(1112)というように、数字(数字)の記載になっている部分があります。 ()の前と、中は必ず半角数字で、桁は1桁~5桁までと幅広い状態です。 この()内の数値をD~F欄に書き出したいです(縦3列のものを、横3列として書き出したい) 数字(数字)という記載のセルは、必ず縦に3つ並んでいますが C列は膨大なセル数なうえに、数字(数字)という記述以外のセルも間に入っております(数字のみのセルか、空欄のセルです) 3つ並んでいる部分のみを探して、()内の数値を抽出し、D~F列に書き出すことは可能でしょうか? 書き出す場所は、3つ並んでいるC列の最初のセルの横のD~Fだと助かります。 (数字(数字)がC6~8にあった場合、D6~F6に書き出される) なお、数字(数字)というセルはC列以外にはなく、4つ以上縦に並ぶ事もありません。 さすがにこのような内容を実行するのは不可能でしょうか? もし可能でしたら、マクロを組んでいただきたいです・・・よろしくお願いします。

  • 【エクセルVBA】エクセルファイル間で表のコピーと貼り付け

    そもそも出来るかどうか、わかりませんが、 もしかしたらと思い、質問させていただきました。 2つのエクセルファイル「個別」と「合計」があるとします。 「個別」はCドライブの「所属者」フォルダに 「合計」はCドライブの「集計」フォルダにあるとします。 「個別」ファイルには以下のような表とコマンドボタンがあります。 A1 A2・・・はセルの位置を表しています。    A1 A2 A3 B1 B2 B3 C1 C2 C3 コマンドボタンをクリックすると、この表と同じ内容が 「合計」ファイルの以下の位置に移動するようにしたいです。    E1 E2 E3 F1 F2 F3 G1 G2 G2 要するに「個別」ファイルにある表をコピーして、 「合計」ファイルの指定した位置に貼り付けるという操作を マクロを使ってコマンドボタンをクリックすることで 自動に行えるようにしたいのです。 もし可能ならば、 どのようにコードを入力するべきか教えてください。 マクロに関しては素人ですので、 できれば入力すべきものをそのまま回答していただけると ありがたいです。

  • Excelのマクロについて教えてください。

    Excelのマクロについて教えてください。 下記のマクロがあります。 With Range("A" & Rows.Count).End(xlUp) .EntireRow.Copy .Offset(1) .Offset(1).EntireRow.SpecialCells(xlCellTypeConstants).ClearContents .Offset(1).Value = .Value + 1 End With 実際にデータが入っているのはA列~E列までで .EntireRow(行全体)ではなく A?:E? と範囲を指定して上記を実行させたいのですが どのように変更するといいでしょうか。 よろしくお願いします。

専門家に質問してみよう