• 締切済み

エクセルのマクロ

Mathmiの回答

  • 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

関連する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