• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:1シートに10枚の資料を作り画像を取り込む方法。)

1シートに10枚の資料を作り画像を取り込む方法

keithinの回答

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

そういった具合に(後出しで,というのも良くないですがそこはまぁちょっと脇に置いておくとしても)「あれもできたらいーな(クリックして実行したい),これもできたらいーな(1シートに10枚作りたい)」と思いつきで機能を追加していくと,あとで「やっぱりこうしたい」と思ったり「今度はこーしてちょうだい」と新しいリクエストが降りてきても,ご自分ではすっかりワケ判らずで後戻りできなくなってしまいまた結局最初から誰かに作ってもらう羽目になりますよ? また,ここのような質問相談掲示板は決してアナタの仕事をロハで下請けしてくれる,便利な無料の仕事屋じゃないってことを,勘違いしないようによく理解してください。 sub macro4()  Dim myFiles As Variant  Dim target As Variant, targete as range  Dim i As Integer  Dim s As String, ss As Variant  dim p as long, startRow as long, pitchRow as long '対象セルが変更になったら下記を書き換える  target = Array("D36", "I36", "I54", "D54")  startrow = 36  pitchrow = 71  if activecell.row < startrow then  msgbox "Select correct area"  exit sub  end if  p = int((activecell.row - startrow)/pitchrow)  myFiles = Application.GetOpenFilename(filefilter:="画像(*.jpg),*.jpg", MultiSelect:=True)  If Not IsArray(myFiles) Then Exit Sub  On Error Resume Next  for i = 0 to ubound(target)  ActiveSheet.shapes("pict_" & range(target(i)).offset(p * pitchrow).address).Delete  next i  On Error GoTo 0  For i = 0 To Application.Min(UBound(target), UBound(myFiles) - 1)   Set targete = Range(target(i)).Offset(p * pitchrow)   s = myFiles(i + 1)   With ActiveSheet.Pictures.Insert(s)   ss = Split(s, "\")   .name = "pict_" & targete.address   .Top = targete.Top   .Left = targete.Left   .Width = targete.MergeArea.Width   .Height = targete.MergeArea.Height   End With  Next i End Sub 作成したいセル(1枚分の中の任意のセルでよい)を選んでマクロを実行する。

guttatum
質問者

お礼

keithin 様へ 何度も、何度も、質問を変更したのにもかかわらず、ご回答頂きまして、本当に助かりました。 10枚の様式ですが、現在、実際にコピーして使用していて、10枚すべてに画像が貼り付け出来たので、keithin様の細やかな対応して頂いた事を忘れ、身勝手なお願いばかりしまして、申し訳ありません。 お蔭様で、希望通りの動作をして画像貼り付けが簡単に出来るようになりました。 身勝手な質問に多大な時間等を費やされて、本当に、有難う御座いました。

関連するQ&A

  • エクセルの各シートをアクセスで結合するには

    お世話になります。 1つのエクセルファイルに同じ書式のシートが複数あります。1行目がタイトル行で2行目以降にデータが入っています。 この各シートのA2セルからM列の最終行までの範囲のデータを順番にアクセスに取り込み一つのテーブルを作成したい。各シートのデータを縦に結合するイメージです。行数は各シートバラバラです。また各シートの列数はM列より多いが必要なのはM列までです。 最初のシートだけタイトルが必要なのでA1セルから取り込みます。 縦に並べるとエクセルの最大行数を超える可能性があるので一旦エクセル上で縦に並べることは考えません。 アクセスに取り込んだ際、主キーになる項目がないので左端に1からの連番の列を作ります。 以上のことをするためにはどのようにすれば良いのでしょうか?シートがかなりあるので自動化できればうれしいです。 空シートはありませんが、空白のセルはあります。 よろしくお願いします。

  • エクセルの各シートをアクセスで縦に結合するには

    お世話になります。 1つのエクセルファイルに同じ書式のシートが複数あります。1行目がタイトル行で2行目以降にデータが入っています。 この各シートのA2セルからM列の最終行までの範囲のデータを順番にアクセスに取り込み一つのテーブルを作成したい。各シートのデータを縦に結合するイメージです。行数は各シートバラバラです。また各シートの列数はM列より多いが必要なのはM列までです。 最初のシートだけタイトルが必要なのでA1セルから取り込みます。 縦に並べるとエクセルの最大行数を超える可能性があるので一旦エクセル上で縦に並べることは考えません。 アクセスに取り込んだ際、主キーになる項目がないので左端に1からの連番の列を作ります。 以上のことをするためにはどのようにすれば良いのでしょうか?シートがかなりあるので自動化できればうれしいです。 よろしくお願いします。

  • Excelで3つのシートを一つにまとめる方法

    お世話になります。よろしくお願いします。 学校で成績表をつけるときに、一覧表も作るのですが、これを一つのシートにまとめたいのです。 成績表は学期ごとに作るので、3枚できます。形式は同じです。文で書くと分かりにくいかもしれませんが、例えばB2セルに出席番号1番の子の名前を入れると、C2セルには2番の子・・・というふうに、横の列には氏名が入ります。縦の列には、各教科の観点が入ります。例えばA3セルに国語の読む力、A4セルには国語の書く力・・・などと入れていきます。これが1学期分、2学期分、3学期分と3枚できるわけです。 これを1枚の別のシートにまとめたいのです。例えばB2、C2、D2セルを結合して氏名を入れ、その下のB3セルには1学期の成績、C3セルには2学期の成績、D3セルには3学期の成績が、元になっているシートから飛んでくるようにしたいのです。 分かりにくい説明で、申し訳ありませんが、簡単にできる方法を思いつかれた方は、教えていただけないでしょうか? よろしくお願いします。

  • エクセルのシート間のリンクの設定について

    エクセル2000を使っているのですが、質問があります。シート1に横(列ごと)にオートサムで合計が集計されているセルをシート2に縦(行ごと)にリンクさせて貼り付けることは出来ないでしょうか?ひとつひとつ貼り付けていけばいいとは思うのですが、数が多いのでまとめて出来る方法があれば教えていただけませんか?解りづらい質問ですみません。

  • エクセル 画像を固定できる?

    例えば下の様なファイル。    A    B   C   D  1 画像1  あ   A   A 2 画像2  い   B   C 3 画像3  う   B   B 4 画像4  え   D   B オートフィルタでC列のBだけを表示させたり、並べかえたりすると、A列の画像が重なってしまいます。それは仕方ないとして、一番上の画像とBCD列の内容が違うのは何とかしたいのですが・・・ アドバイスお願いします。 ちなみに横セルはMまで、縦セルは130行ぐらいです。

  • 別シートに任意のセルを転記する方法について

    縦に6行ずつのデータがあり、これを横1行の別シートに転記する際に、 以前こちらで回答頂いた方法を応用したいと考えています。 =IF(INDEX(Sheet1!$Z:$Z,(ROW(A1)-1)*6+COLUMN(A1))=0,"",INDEX(Sheet1!$Z:$Z,(ROW(A1)-1)*6+COLUMN(A1))) アドバイスのとおり、上記の数式で見事に横にデータが転記できました。社員1人につき6行ずつのデータが縦にならんでおり、これを別の社員1人あたり1行で横に並んだデータにしたいというものでした。 1人目のデータは1行目を1列目に、2行目を2列目に・・・2人目のデータである7行目を1列目に、8行目を2列目に・・・3人目は13行目を1列目に・・・となります。 しかし、順次並べるのではなく、転記の必要にないデータを含むシートの任意のセルを選び、別シートの任意のセルへ転記する必要が生じたため、悩んで路頭に迷っております。。。 例えば、6行ずつのデータのうち、いつも3行目を別シートの5列目に。4行目は転記せずに、5行目を6列目に。また、6行目を7列目に転記せずに10列目に転記する。(8・9列目は、別データを入力するため空白にしたい) そして、社員2人目である7行目からは、上記と同じ規則で転記したい。 などというように、選んで転記する方法は何かありますでしょうか?? =INDEX(Sheet1!$Z:$Z,(ROW(B2)-ROW($B$2))*6+IF(COLUMN()=4,MOD(COLUMN(B2)-1,6)+1,MOD(COLUMN(B2)-1,7))) のようにしても上手くいきません。 何卒宜しく御願いいたします。

  • マクロ【シート名に対応した文字を挿入・置換】

    マクロ【シート名に対応した文字を挿入・置換】 御世話になります。 【D:\test】内に2つのエクセルファイル(Excel2003)があります。 ※1つ目のファイル名は【季節別表.xls】。 中には一番左端のシート名は【起動シート】で、その横は【spring】【summer】【autumn】【winter】という名前のシートが あり、すべてのシートにはサンプルの表がある。 ※2つ目のファイル名は【データシート.xls】。 中にはシート名【2008】のみが存在。 シート内には下記のような文字を入力している。 セルB2:シート名 セルC2:季節名 セルD2:気候 セルB3:spring セルC3:春 セルD3:暖かい セルB4:summer セルC4:夏 セルD4:熱い セルB5:autumn セルC5:秋 セルD5:涼しい セルB6:winter セルC6:冬 セルD6:寒い B2・C2・D2はシートの列が何の項目であるかがわかるために入力。 B3~6は【季節別表.xls】に存在するシート名を縦に入力。 悩んでいるのは【季節別表.xls】のシート名【起動シート】内にあるマクロボタンに入れるマクロです。 理想の処理の流れですが、 【データシート.xls】のセルB3のspringというシート名が【季節別表.xls】にあればそのシートに セルB3の右隣であるセルC3の文字列【春】を取得し、【季節別表.xls】のシート名【spring】のセルD35の文字列である 【今年の季節名は入学シーズンである。】の【季節名】と置換。 また、セルC3の右隣であるセルD3の文字列【暖かい】を取得し、 【季節別表.xls】のシート名【spring】のセルF70の文字列である【気候は気候状況。】の文字列【気候状況】と置換。 この処理が終わったら、今度は次の行を同じような処理を続け、最終的にはB列が空行になるまで続けられるマクロは 可能でしょうか? 何か簡単なサンプルコードがあれば助かります。 宜しくお願い致します。

  • ExcelVBAで複数セルを別シートに貼り付けたい

    Excel VBAでデータをコピーして、別シートに貼り付けるどうしたらいいのでしょうか。 Sheet1のセルA1からA4のデータをコピーして、Sheet2のC2からc5に貼り、次はSheet1のセルB1からB4のデータをコピーしてSheet2のC7からc10に貼りを500行ほど繰り返し(コピーするデータは、4行づつ横へ移動し、貼り付けるほうは4行づつ縦へ移動します。) それが終わったら、今度はB列、c列と100列ほど同じ操作を繰り返します。 いろいろな方法を試しましたが、なかなかうまくいきません。 どなたか教えていただけませんでしょうか。よろしくお願いいたします。

  • EXCEL:違うシートに数値を反映させる方法

    例えばsheet1に表を作成したとします。 で、数値を縦(列)に記入していくとします。 すると、 sheet2に横(行)にその数値を反映させるようにしたいのです。 どうやればいいかまったくわかりません。 うまく説明できないのですが、よろしくお願いします。

  • エクセル マクロ フルパスから画像を読み込む

    数日前からマクロを勉強し始めた初心者です。 下の画像のような表を作っています。 ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ ■Sheet1 …「商品在庫一覧」 ■Sheet2 …「印刷用シート」※必要なものだけをSheet1から呼び出し、印刷用として同じシート上で並べ替える(図では‘行5’から下が印刷範囲です) ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ Sheet2のD列(D1~D3‥)に商品画像のフルパスを呼び出し、「写真を配置」のボタンを押すと、印刷範囲の‘行7’のセルに自動で画像が配置されるようにしたいです(‘あ’のパスの画像を‘い’のセルに)。 画像を配置するような関数はなく、マクロでなければ実現できないということで、似ている条件の構文をアレンジして‥と思ったのですが、マクロのことをきちんと理解できていないためうまくいきません。 ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ ■「D1」のパスから「A7」に画像を配置する構文を教えていただけますでしょうか。 ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ 初歩的なことを聞いてすみません。 完成までの残り時間があまりないもので、質問させていただきました。 どなたかお暇がありましたら、お願いいたします。