• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:画像の貼り付けに関して)

指定のセルに画像を貼り付ける方法は?

米沢 栄蔵(@YON56)の回答

  • ベストアンサー
回答No.1

指定のセルをC3とし、そのシート名をAA あるフォルダ名をXXX、画像ファイルをYYYとして 構文を書きます。参考にして下さい。 Sheets(AA).Select Range("C3").Select Sheets(AA).Pictures.Insert(XXX & "\" & YYY) 貼付した画像のサイズを調整したい場合 Sheets(AA).Pictures.Insert(XXX & "\" & YYY).Select とし、 Selection.ShapeRange.Height=375(画像の縦長) Selection.ShapeRange.Width=250(画像の横長) とすれば任意のサイズに調整出来ます。 貼付位置をセルとせず、所定の位置(シート最左上を原点として、) Selection.ShapeRange.IncrementTop=400 Selection.ShapeRange.IncrementLeft=300 「375,250,400,300」はピクセル値でmmではありません。 予め位置とサイズを定めるためのサンプルを作り、 次の構文で位置とサイズを確認すること(ピクセル値)も出来ます。 Dim ZZZ,T,L,H,W For Each ZZZ In Sheets(AA).Shapes T = ZZZ.Top L = ZZZ.Left H = ZZZ.Height W = ZZZ.Width Next

asamix_000
質問者

お礼

YON56様、返事が遅くなりまして申し訳ありません。 教えて頂いた通りに記述したところ、問題なくできました! ありがとうございました!

関連するQ&A

  • VB6 エクセルに画像貼り付け

    お世話になります。 VB6でエクセルのセルを数値で指定して、そこに画像を読み込んで実態を張り付けたいのですが、 色々調べて ActiveSheet.Pictures.Insertと ActiveSheet.Shapes.AddPictureを試してみましたが ActiveSheet.Shapes.AddPicture( FileNameTmp, False, True, 10, 20, 0, 0) AddPictureはもしかしてVB6には対応していないのでしょうか? 構文エラーになってしまいます。 ActiveSheet.Pictures.Insert(FileNameTmp).Select Insertだと画像がリンクになってしまいます。

  • マクロがあるファイルの読み出し時にマクロの有効を聞いてこないようにする。

    以下のようにエクセルのブックのシート名をゲットしようとしたのですが、エクセルにマクロを入れてあるため、「マクロの有効、無効」を聞いてきます。 聞いてこないようにするため xlApp.DisplayAlerts = False を入れたのですが、ダメでした。なにか良い方法はあるのでしょうか? 宜しくお願いいたします。 Dim FileNam As String Dim filebasho As String Dim wbsinario As Object Dim shtsinario As Object Dim ExcelWasNotRunning As Boolean If Err.Number <> 0 Then ExcelWasNotRunning = True Err.Clear ' xlApp.DisplayAlerts = False Set shtsinario = GetObject(filebasho & "\" & FileNam) Set wbsinario = shtsinario.Application.Workbooks(FileNam)

  • エクセルに画像を取り込めたのですが・・・

    マクロでクリアしたいのですけど クリアボタンでどんな命令を入れたらよいのでしょうか? Shape1.Delete で消せと、本には書いてあるのですが・・・ Sub クリア() Range("P4").Select Selection.ClearContents Range("P4").Select Shape1.Delete End Sub だと、エラーになります・・・当たり前ですが・・・ 文字と一緒に消したいのに消えない・・・ それと、写真をファイル名で検索して取り込むのことは可能ですか? Sub クリック写真表示() Dim shape1 As Object Set shape1 = ActiveSheet.Shapes.AddPicture("C:\Users\Iida\Pictures\10001.bmp", _ False, True, 549, 62, 161, 121) Range("P4").Select End Sub これだと、指定した写真しか入りません。。。 IFが使えるということなんですが・・・?? すべて跳ね返されます。。。頭が痛い・・・

  • VB2005:Excelからの参照で教えてください

    下記のコードにてExcelからFindにて検索しセルの値を参照したいのですが 元データがフィルタにて表示されていない場合、ヒットしません。 SQLにて読み出す方法も試したのですが、日付ばかりの列に日付以外が 入っている場合が満足な結果にならないため、下記の方法を試していますが フィルタに阻まれてうまくいきません。 どうか、フィルタによって表示されていない場合でも検索出来る方法が ありましたらご教授お願いいたします。 素人の質問で判りにくいとこがあるかもしれませんが よろしくお願いいたします。 Dim xlApp As New Excel.Application Dim xlwb As Excel.Workbook = xlApp.Workbooks.Open("C:\納期情報\制御盤納期表(元).xls") Dim xlsheet As Excel.Worksheet Dim fndArea As Excel.Range '探すセル範囲 Dim product_code As String '探す文字列(Text8に入力) Dim rg As Object '探し出したセル Try xlsheet = xlwb.Worksheets("制御盤納期") fndArea = xlsheet.Range("A5:A65536") product_code = StrConv(Me.TextBox8.Text, VbStrConv.Uppercase) 'シートを検索する rg = Nothing rg = fndArea.Find(product_code, , Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart, _ Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, False) If Not rg Is Nothing Then Me.TextBox1.Text = rg.Offset(0, 1).Value End If xlwb.Close(False) '保存しない xlApp = Nothing xlwb = Nothing xlsheet = Nothing fndArea = Nothing rg = Nothing Catch ex As Exception xlwb.Close(False) '保存しない xlApp = Nothing xlwb = Nothing xlsheet = Nothing fndArea = Nothing rg = Nothing ' 例外が発生した時の処理 MessageBox.Show(ex.ToString, "例外発生") Return End Try

  • VB6 オートシェイプ描画

    VB6 オートシェイプ描画 VB6でExcel,2000(ActiveSheet)にオートシェイプを使用したいのですが、エラーが出てしまいます。 コマンドボタンクリック時、エラー ------------------------------- 実行時エラー'1004': 指定された値は境界を超えています。 ------------------------------- AddLineは出来たのですが四角や円がこのエラーです。どこが間違えているのでしょうか? 宜しくお願いします。 Private Sub CB13_Click() Dim xlApp As Excel.Application Set xlApp = GetObject(, "Excel.Application") xlApp.ActiveSheet.Shapes.AddLine 50, 50, 100, 100 '(OK) xlApp.ActiveSheet.Shapes.AddShape(msoShapeRectangle, 50, 50, 100, 100).Select '(NG) Set xlApp = Nothing End Sub

  • クリップボードの内容をEXCELに貼付け

    クリップボード内容をエクセルのシートに貼り付けることをvbで行おうとしています。 1回目はできるのですが、2回目にはエラーが出てしまいます。(貼り付けるセルを指定したときに) 現状のコードを添付します。おかしなところがわかる方、教えて下さい。 '------------------------------------------------------- 'エクセルを起動させる '------------------------------------------------------- Public Sub ExcelProc() Dim xl2 As Excel.Application Dim xl2Book As Object Dim xl2Sheet As Object Dim ELSFileName As String 'エクセルの起動 Set xl2 = CreateObject("excel.application") xl2.Visible = True xl2.Workbooks.Open ("d:\test.xls") Set xl2Book = xl2.ActiveWorkbook Set xl2Sheet = xl2Book.Worksheets(1) 'D10にクリップボードの内容を貼り付ける xl2Sheet.Select Range("d10").Select ActiveSheet.Paste '保存するファイル名を作成 ELSFileName = "c:\test10.xls" '保存 ChDir "C:\" ActiveWorkbook.SaveAs FileName:=ELSFileName, FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Set xl2Sheet = Nothing xl2Book.Close True Set xl2Book = Nothing xl2.Quit Set xl2 = Nothing End Sub この関数を2度実行させたらエラーになります。 Range("d10").Select 'この箇所でエラーになる。 お願いします。

  • Workbooks.Open VBA

    Dim xlApp As Object Dim xlWbk As Object Set xlApp = CreateObject("Excel.Application") xlApp.Visible = True Set xlWbk = xlApp.Workbooks.Open("C:\Users\test.xlsx") の後に、 xlWbk.Sheets("1").Select とするのと、 xlApp.Sheets("1").Select とするのでは、 同じ意味ですか? どちらも C:\Users\test.xlsx の シートを選択することになりますか?

  • VBA 画像貼り付けのオプション指定法

    VBA初心者です。MS Office 201で,Excelに画像を貼り付けるとき,アスペクト比を保って幅を指定,位置をセルの位置で指定,名前を付けたいので,ネットを参考にして,以下の通りにしました。 Range("A6").Select 'A6の位置を指定 ActiveSheet.Pictures.Insert(myFile).Select 'myFileはあらかじめ設定 With ActiveSheet.Shapes(3) .LockAspectRatio = True .Width = 160 .Name = "Pict01" '名前はPict01 End With ここで,Shapes(3)の3は,画像やボタンがこのシートで3番目だからです。しかし,マクロ実行前に,ボタン等を増やすと変わってきてしまいます。この(3)の様な指定なしにできませんでしょうか。

  • VBからエクセルを起動。そのあとエクセルを終了

    教えてください。 VBからエクセルを起動します。 そのあと、エクセルのシートの上にデータを貼り付けます。そして、エクセルを終了します。 しかし、エクセルが終了しません。 タスクバー上のエクセルをクリックすると終了します。 どうして、このような現象が起こるのかわかりません。 教えてください。 下記に同様のサンプルを書きました 誤記入があるかも知れませんが このような感じのプログラムです。 以上、よろしくお願いします。 public sub test Dim XApp as Excel.Application Dim nfilename as string Dim xlBook As Object Dim xlSheet As Object ' エクセルを起動 Set xlApp = New Excel.Application nfilename ="AAAA.xls" ' 指定されたファイルを開く Call xlApp.Workbooks.Open(nfilename) Set xlBook = xlApp.ActiveWorkbook Set xlSheet = xlBook.Worksheets(1) 'フォームを貼り付ける xlSheet.Range("a1").PasteSpecial      'ファイル名の作成 Filename="BBBB.xls" '保存 ChDir "C:\" xlBook.SaveAs Filename:=Filename,FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Set xlSheet = Nothing xlBook.Close True Set xlBook = Nothing xlApp.Quit Set xlApp = Nothing End sub

  • VBでEXCELのシートのコピーに関して

    同一Book内で、シートのコピーをしようと考えて、幾つかのHPを参考に、以下のような 記述をしました。 その際に、以下の記述をした場合、本来はコピー先のシート名を変更したいにも関わらず、コピー 元のシート名が変わってしまいます。 追加したシートの名前を変更させるには、どのような書き方にすれば良いでしょうか? 自分で記述しておきながら、どのように対応したら良いかわからず。。。 また、以下のような記述をした場合、追加したセル側のシートを操作したいにも関わらず、 コピー元のシートを書き換えてしまいます。 追加したシートのセルを操作したい(値を入力)ような場合は、どのような記述を すれば良いでしょうか。。。 ご教授頂ければと思います。 '既存のEXCELファイルを開く Dim xlFilePath As String = "C:\test.xls" '起動時の処理 Dim xlApp As New Excel.Application Dim xlBooks As Excel.Workbooks = xlApp.Workbooks Dim xlBook As Excel.Workbook = xlBooks.Open(xlFilePath) '確認のためExcelのウィンドウを表示する xlApp.Visible = True Dim xlSheets As Excel.Sheets = xlBook.Worksheets Dim xlSheet As Excel.Worksheet = CType(xlSheets.Item(1), Excel.Worksheet) Dim xlSheet2 As Excel.Worksheet = xlBook.Worksheets(1) 'シートのコピー xlSheet.Copy(After:=xlSheet2) 'シートに名前を付ける xlSheet.Name = "TEST" Dim xlRange As Excel.Range 'データの入力セル範囲 xlRange = xlSheet.Range("A1:A1") 'セルへデータの入力 xlRange.Value = “AABBCC”