• 締切済み

エクセルのマクロ

エクセルに画像を貼りつけるマクロを教えてください。 エクセルにたくさんの数字が入っています。 その数字と同じファイル名の画像を貼りつけたいです。 数字は何度も同じものが出てくるので、エクセルのシートに入っている数字すべてに張り付けたいです。 よろしくお願いいたします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

コアな部分は、マクロの記録を取ればわかる。 開発ーマクロの記録ーマクロ名はMacro1になるが、そのままで「OK」。 シートで挿入ー画像―画像ファイルを指定ー挿入 でシートに指定画像が挿入される。 シート画面で、開発ーマクローMacro1を指定ー編集 コードは、 Sub Macro1() ' ' Macro1 Macro ' ' ActiveSheet.Pictures.Insert("C:\Users\??\Pictures\XXXXXXXXXXXXxxxxx.JPG").Select End Sub のようになる。これの( )内のファイル名の終りの部分を、多分、セルの数字と関連させて変えて、繰り返し処理(For Next利用)すればよいと推察する。  それを2-3個のファイルで繰り返して、ファイル名の部分の終りの部分で、少し変化している箇所に注目して、どう変化するのか、文章で表現してみること。 そして、行き詰まった箇所を中心に質問するならやむを得ないが。 何のことを言っているかわからないようなら、VBAでやるのは早すぎるということ。 ーー 丸写しで済む、VBAのコードを回答者に作らせようにも、シートのデータ(数字らしい)のあり様(行と列が判るように)の例示と、ファイル名の変化の仕方の例が、回答者に、わからないと、完成形のコードは、誰にも書きようがない、はず。 その他に写真の表示位置を、シート上で、ずらして表示しないとならないが。 Selection.Top = 200 Selection.Left = 200 Selection.Width = 300 Selection.Height = 200 を加える。 そして、2つ目、3つ目・・は、これらをn番目という、nの数字から計算して 指定しないとならない。縦に1列に並べるならTOPの値は(nー1)*220 +200などと、やさしいが、多列なら、中学校の級数の知識が必要かと。 10-20個なら手動操作の方が早い。 VBAを少しやれるには、最少でも数か月の勉強が必要と思う。 サムネイル的に表示するのが目的なら、そういう出来合いのソフトを探したら。 エクセルは、写真表示ソフトとして、最適とは言えないと思う。

全文を見る
すると、全ての回答が全文表示されます。
  • Mathmi
  • ベストアンサー率46% (54/115)
回答No.2

画像がどのフォルダに入っているのか、画像名がシートのどのセルに入っているのか、画像名はどのような形で入っているのか(拡張子は付いているのか)、複数のシート・ブックに対して行いたいのか、不明な点が多いので、そのままずばりのコードは書けません。 一応、参考になるだろうコードを下に書いておきます。 ファイル名が入ったセル範囲やパス名、ファイル名等を適宜変更して下さい。 Sub PasteImage()  Dim TargetPath As String  Dim TargetRange As Range  Dim myCell As Range  Dim myShp As Shape  TargetPath = "C:" '画像ファイルが入っているフォルダのパス。ThisWorkbook.Pathでもよいか?  Set TargetRange = Selection '貼り付けたい画像名が入力されているセル範囲。  On Error Resume Next '画像がない等エラーが出た時にスキップする。  For Each myCell In TargetRange   Set myShp = ActiveSheet.Shapes.AddPicture(Filename:=TargetPath & myCell.Value & ".png", _              LinktoFile:=False, SaveWithDocument:=True, _              Left:=0, Top:=0, Width:=0, Height:=0)   myShp.ScaleHeight 1, msoTrue   myShp.ScaleWidth 1, msoTrue   myShp.Left = myCell.Left + myCell.Width / 2 - myShp.Width / 2   myShp.Top = myCell.Top + myCell.Height / 2 - myShp.Height / 2  Next myCell  On Error GoTo 0 End Sub

全文を見る
すると、全ての回答が全文表示されます。
  • NuboChan
  • ベストアンサー率47% (750/1592)
回答No.1

ツッコミどころ満載の質問です。 >数字と同じファイル名の画像を貼りつけたい  何処のワークシートに画像を挿入 ? 何処の位置に画像を挿入しますか ?  画像のサイズは?   (オリジナルサイズ? リサイズした画像 ? サイズは全て同じサイズ ?) もう少し具体的な条件などを明らかにしたほうがイメージしやすい。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • excel、マクロについて教えてください。

    excel、マクロについて教えてください。 excelのマクロでシートを追加してシート名を変更し棚卸しに変更する内容を記録したのですが、 excelをずっと使用していてシートを追加していくとsheet1、sheet2と語尾の数字が増えていってしまい、マクロが正常に動作しません。 excelのシートを追加した際に必ずsheet1で追加する方法、若しくはマクロを記録した時はsheet1の名前を変更だったがsheet2でもsheet3でも動作するようなコードは存在しますか? 最近マクロをやり始めた初心者なので、質問が下手かもしれませんがどなたかお分かりになりましたら 教えていただけませんか?よろしくお願いします。

  • エクセル マクロ

    エクセルを使って12桁の数字をsheet A と sheetBとの違いを調べる、表?をつくりたいのですが、マクロを使えば簡単と聞きました、マクロは全くわからないので、マクロを使わなくてもいいのですが、良い方法はありますか?  例えば エクセルの sheet A に 12桁の数字を50, sheet Bに12桁の数字を50, その中からsheetAにはあってsheetBには無いもの、sheetAには無くてsheetBには有るもの を色をつけてわかるようにしたいと思っています。 みなさんよろしくお願いいたします。

  • エクセルマクロです。

    エクセルマクロを使い,100個ほどのファイルの合成プログラム(ファイルを読み込み,中のデータを一つのファイルに貼り付ける)を作っています。シート名が固定されていれば読み込むことが出来るのですが,シート名とファイル名が同じためインデックスエラーが出てしまいます。どのような対処法があるでしょうか…出来ればサンプルコードを教えていただけるとうれしいのですが…よろしくお願いします

  • エクセルマクロ 教えてください

    エクセルの自動記録でマクロを取り組み始めたばかりの初心者です。 本部から毎月送られてくるエクセルファイルにこちらで別のワークブックに記録したマクロを使って加工しようとしていますが方法がわかりません。 他の人がこのファイルを間単に加工出来るようマクロを使って (マクロのコードの書き換え等の作業をしないで)行えるようにしようとしています。 ※送られれくるエクセルファイルは月毎にファイル名が違います(シート名は変わりません)。 下記は自動記録の内容ですがこれを適用させる方法であります。 宜しくお願いいたします。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2008/9/8 ユーザー名 : ******* ' ' ActiveWindow.TabRatio = 0.819 Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5")).Select Sheets("Sheet1").Activate With ActiveWindow .DisplayHeadings = False .DisplayHorizontalScrollBar = False .DisplayVerticalScrollBar = False End With Sheets(Array("Sheet6", "Sheet7", "Sheet1", "Sheet2")).Select Sheets("Sheet1").Activate ActiveWindow.Zoom = 120 End Sub

  • エクセル2007マクロについて。お願いいたします。

    excelファイルの容量が10MBにもなってしまい大変困っています。すべてのシートを新しいブックにコピーしたのですがサイズは変わりませんでした・・・方法が間違っているのでしょうか??? 関数やマクロを組み込んだsheetが14枚くらいです。軽量化するにはどうしたら良いでしょう??また、肥大化しないためのマクロ等ありましたら教えていただけますでしょうか、よろしくお願いいたします。

  • エクセルのマクロについて

    人が作ったマクロで困ってます。 数年分の書類を一つのファイルでシートに分けて作ってます。 マクロでファイル名を付けて保存するまではいいのですが、 ファイル名で使いたい日付がテキストボックスで作られているため、 うまくいきません。 テキストボックス内の文字列をコピーしてファイル名に使えないでしょうか? エクセルは2007です。(2003もあります)

  • エクセル マクロ 複数ファイルを1枚のファイルに

    お世話になります。 私の業務で、多数のエクセルシートを1つのファイルにまとめ、 その上で縦串を通して合算を出す、という作業が頻発しております。 様々な資料で同様の作業が行われますので、簡素化ができればと思い、 質問させていただきます。 [作りたいマクロ] 『元データ』のフォルダに入っているエクセルファイルの 『指定シート(仮にA2セルにシート名を指定できるものとします)』を、 当マクロの入ったエクセルファイルにシートを追加したい。 その際、全てのシート名が同一になってしまうので、 『指定したセル(仮に各シートのB2セル)』をシート名にする。 ●各シートは全て同じフォーマットですので、書式等そのままコピーでOKです ●元のファイル名はバラバラになっていることが多いです

  • エクセル マクロ

    エクセルマクロで、複数ファイルにある全シートの情報を、別ファイルの1シートに転記したいのですが、なかなか上手く行きません。(ほぼ初心者です。) 詳細は↓です。どなたかご教授の程よろしくお願いいたします。 【やりたいこと】 同一フォルダ内にある約60個のファイルの、全てのシート内の情報を別の集計用ファイルに転記する。 (1) ファイル毎にばらばらなシート名&シート数で、これら全てのデータを集計用ファイルに転記するには?(シート数は1ファイルあたり1シートから最大13シート) (2) 以前に似たような作業をした時は、ファイル名をいちいち集計用ファイルにコピペして読み込ませたが、こうした手間を掛けずに一括処理するには? ※転記作業自体は「マクロの記憶」機能で書き出すので、それ以外の、特に始まりと終わりの部分を教えて下さい。 ※転記内容自体はあまり複雑ではなく、集計用ファイルに1シート1行として転記し、ズラッと下に120行書き込むつもりです。 説明が分かりづらい部分があればご指摘ください。よろしくお願いいたします。

  • Excelのマクロについて

    エクセルでマクロを組んで、備品の管理をしたいと思っているのですが以下のことをやるにはどういったマクロを組めばよいでしょうか?何か参考になるサイト等ありましたら教えていただければありがたいです。。。 ・写真をファイルから参照して挿入する(複数枚 ・備品ごとにシートを分けて管理 ・シートの移動はマクロのタブを押すと移動する ・シートは一覧もできる(項目名のみの羅列

  • エクセルのマクロでコンタクトシートを作成したいです

    はじめまして、 タイトルの通り、エクセルのマクロでコンタクトシートを作成したく質問しました。 コンタクトシートの内容としては、 ●フォルダ内にある画像(今回の場合はPNG)すべてを一覧リスト化する(A列)。 ●A列に配置された画像の情報(ファイル名、画像サイズ等)をB列以降に表示。 の以上がやりたい事です。   A列   B列    C列 1 画像 ファイル名 画像サイズ 2 画像 ファイル名 画像サイズ 3 画像 ファイル名 画像サイズ        ・        ・        ・ と、続く様な表示にしたいです。 できれば、 A列の画像は、セルにあわせてしまうと小さく表示されてしまうようなので、 ・元の画像の50%などといったように表示される? ・またはセルのサイズの最大値(50px x 50px)を固定する? のようになると、とてもありがたいです。 他の質問等を探してみましたが、 photoshopでのコンタクトシートは求めているものと違いました。 また、エクセル等での回答がありましたが、画像のみの表示でしたので、 上記の様な事が1度にできればと思い、ココに質問させていただきました。 知識レベルとしては、 マクロ初心者です。 どうか みなさんの知識をお借りしたいと思いますので、 よろしくお願いいたします。 pc環境: windows XP Excel 2000

ひとりごはんって好き?
このQ&Aのポイント
  • ひとりごはんが好き!一人で食べる時間が至福のひととき。
  • ひとりごはんの良さは、自分のペースで食事ができること。
  • ひとりごはんは、自己満足度が高く、自由な時間を楽しめる。
回答を見る

専門家に質問してみよう