エクセルマクロで画像を指定したコマへ移動する方法

このQ&Aのポイント
  • エクセルのマクロを利用して画像を指定したコマへ移動させる方法について教えてください。
  • マクロを使用して画像をトリミングし、その後指定したセルに移動させる方法を教えてください。
  • 現在使っているコードでは画像が常に同じ場所に移動してしまうため、指定したセルに移動させる方法がわかりません。
回答を見る
  • ベストアンサー

エクセル マクロで画像を指定したコマへ移動する

よろしくお願いします。 マクロは触ったばかりです。 何度も検索をかけたのですがどうしても うまくヒットさせることが出来ず こちらで相談させて頂くことにしました。 画像を毎回決まった大きさにトリミングし その後 その画像の左端をセルB17に移動させたいのですが マクロの記録で行うと 右へどれくらい、左へどれくらいと 指定されてしまい必ず同じ場所へ移動してくれません。 「その画像の左端をセルB17に移動」 このコードを教えてください。 出来上がっているコードは Selection.ShapeRange.PictureFormat.CropBottom = 224.39 Selection.ShapeRange.PictureFormat.CropTop = 21.6 Selection.ShapeRange.PictureFormat.CropRight = 11.4 Selection.ShapeRange.PictureFormat.CropLeft = 9.6 Selection.ShapeRange.ScaleWidth 0.76, msoFalse, msoScaleFromBottomRight Selection.ShapeRange.ScaleHeight 0.76, msoFalse, msoScaleFromTopLeft End Sub ここまでです。 (右へどれくらい移動というのは 消しました。) よろしくお願いします。

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

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

画像のLeftプロパティとTopプロパティをセルB17のLeftプロパティとTopプロパティにすれば良いです。 With Selection   .Left = Range("B17").Left   .Top = Range("B17").Top End With 次ステップでは、Select、Selectionをしない書き方を研究してください。

sovico
質問者

お礼

ありがとうございます。 ものすごい初歩的な質問みたいですね。。 すみません。 お陰でとても助かりました。 >>次ステップでは、Select、Selectionをしない書き方を研究してください。 是非勉強します。 もう少し理解していきたいと思います。 本当にありがとうございました。

関連するQ&A

  • 挿入した画像を等倍ではなく、サイズを指定したい

    Sub Macro1() ActiveSheet.Pictures.Insert( _ "C:\Users\画像.gif").Select With Selection.ShapeRange .ScaleWidth 1, msoFalse, msoScaleFromTopLeft .ScaleHeight 1, msoFalse, msoScaleFromTopLeft End With End Sub これで画像を挿入し、サイズを変更してるのですが 1だと等倍になってしまうようです。 常に1cmとか、サイズを指定して変更するプロパティはありますか?

  • ExcelVBAでオートシェイプラインを変更したい

    Excel2013を使用しています。表中の空欄にShapeを使って斜めにラインを引いていますが、この線をデータのカウントに合わせて上端を変化させたい。AddLineにて線を挿入するコードとマクロでのSelection.ShapeRange.ScaleWidth 1.3605442177, msoFalse, msoScaleFromBottomRight 'Selection.ShapeRange.ScaleHeight 0.7500001875, msoFalse, _では希望通りできますが、いちいちポイントをつかまなくてはなりません。名前を付けたラインをセレクトして「I27(右上)~B31(左下固定)」等と上端を変化できる方法を教えてください。

  • エクセル2007のマクロで画像挿入がうまくいきません。

    エクセル2007のマクロで画像挿入がうまくいきません。 写真のサイズ縦横比がセルにあっていないので伸びてしまいます。 下記のプログラムでサイズ変更も可能でしょうか? フォームのボタンの上に張り付けた場合、ボタンを隠す事は 出来ますか? ボタンの色は変更できるのでしょうか? いろいろわがままな質問で申し訳ありません。 マクロ初心者です。 Sub Pic_in2007() fname = Application.GetOpenFilename ActiveSheet.Pictures.Insert(fname).Select Selection.ShapeRange.LockAspectRatio = msoFalse Selection.ShapeRange.Height = range("B5:C6").height Selection.ShapeRange.Width = range("B5:C6").width Selection.ShapeRange.left = range("B5:C6").left Selection.ShapeRange.top = range("B5:C6").top End Sub

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

    OS:XP Excel:2007 お世話になります。 マクロ初心者ですが宜しくお願いします。 エクセルにワードの文字を挿入するマクロを組んでみたのですがセルのサイズの取得方法が解りません。 挿入したオブジェクトのサイズを数値にて指定するところまでは出来たのですが、選択されているセルのサイズに合わせる為にはどうしたら良いでしょうか? 宜しくお願いします。 Sub 起動コピー() Call word起動 Call wordコピー Call 形式を選択して貼付 Call セルに合わせる End Sub Sub word起動() Set wd = CreateObject("word.Application") wd.Visible = True wd.Documents.Open Filename:= _ "C:\Documents and Settings\aaa.docx" End Sub Sub wordコピー() Dim wdApp As Word.Application Set wdApp = GetObject(, "word.application") wdApp.Run "copy" wdApp.quit End Sub Sub 形式を選択して貼付() ActiveSheet.PasteSpecial Format:="Microsoft Office Word 文 書 オブジェクト", Link:= _ False, DisplayAsIcon:=False End Sub Sub セルに合わせる() Selection.ShapeRange.ScaleHeight 1.08, msoFalse, msoScaleFr omTopLeft Selection.ShapeRange.ScaleWidth 0.93, msoFalse, msoScaleFro mTopLeft End Sub

  • Excel 任意のセルを指定する方法

    Excel 任意のセルを指定する方法 こんにちは Excel2003でセルの上を「---」で覆うマクロを作成しました。(以下参照) でもこれはセル「K2」に作成されます。 任意の作成したいセルを「---」で覆うようにするのには どのように改造すればよいでしょうか? おわかりの方お教えください。 ' 透明なセルを一つ作るマクロ ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 672.75, 13.5, _ 81#, 13.5).Select Selection.Characters.Text = "---" With Selection.Characters(Start:=1, Length:=3).Font .Name = "MS Pゴシック" .FontStyle = "標準" .Size = 11 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With Selection.HorizontalAlignment = xlCenter Selection.ShapeRange.Fill.Visible = msoFalse 'Selection.ShapeRange.Fill.Solid 'Selection.ShapeRange.Fill.Transparency = 0# Selection.ShapeRange.Line.Weight = 0.75 Selection.ShapeRange.Line.DashStyle = msoLineSolid Selection.ShapeRange.Line.Style = msoLineSingle Selection.ShapeRange.Line.Visible = msoFalse Range("K2").Select End Sub

  • マクロの保存先について

    会社でデータ入力をしています。 エクセルのファイルに大量の画像を貼り付けていかなくてはならないので、下記のようなマクロを作りました。 挿入した画像のサイズを変えるマクロです。 Sub Macro() Selection.ShapeRange.ScaleWidth 0.25, msoTrue, msoScaleFromTopLeft Selection.ShapeRange.ScaleHeight 0.25, msoTrue, msoScaleFromTopLeft End Sub 作成したのはいいのですが、マクロを保存するときに「個人用マクロブック」に保存できません。「作業中のブック」や「開いているすべてのブック」などの項目はあるのですが、「個人用マクロブック」だけありません。複数のファイルで使いたいので、「個人用」に保存したいのですが・・・。ちなみに使っているのはエクセル2002です。 マクロは基礎的な事しか習っていなので、どこがおかしいのかよく分かりません。マクロはちゃんと実行できます。 どなたか詳しい方アドバイスお願いします。拙い説明ですが、よろしくお願いします。

  • エクセル2007でマクロを使った写真挿入がうまくいきません。

    エクセル2007でマクロを使った写真挿入がうまくいきません。 エクセル2003で使っていたひな形をもらったのですが2007では結合したセルから ずれてしまいます。 どうすれば位置の修正をできますか? また、結合した大きなセルの中にフォームボタンを付けいるのですが 2003では写真が挿入されるとボタンは隠れてしまっていたのですが、 2007では挿入した写真に重ねって写真が見ずらいです。 隠すことはできるのでしょうか? なにぶん初心者なのでお願いします。 Sub Pic_in() ' マクロ記録日 : 2003/7/1 kome fname = Application.GetOpenFilename ActiveSheet.Pictures.Insert(fname).Select Selection.ShapeRange.LockAspectRatio = msoFalse Selection.ShapeRange.Height = 247.5 Selection.ShapeRange.Width = 350 End Sub

  • Excel VBA シェイプの原型のサイズ取得方法

    VBAでシェイプの縦横比を%指定で変更したく、下記のように書いています ActiveSheet.Shapes("Picture 208").Select Selection.ShapeRange.LockAspectRatio = msoFalse Selection.ShapeRange.ScaleWidth 2, msoFalse '横2倍の大きさに ところが、ScaleWidthが見ている数値が元の図形のものと違うようです。原因を探すためにシェイプの原型のサイズ(幅や高さの数値)を知りたいのですが、VBAからアクセスできるプロパティやメソッドはあるでしょうか?

  • 画像の表示で困っています

    いつも、参考にさせていただいております 当方マクロ初心者です 画像の挿入で教えていただきたいのですが 1.挿入したい画像は5種類あります  場所は任意のフォルダ-もしくは同ブックの別シ-ト(出来たらこち らの方が有り難いです)にあります 2.セルを選択後VBAを実行すればそのセルに画像を挿入する  画像の選択は 都度もしくは各画像用のVBAで行う いろんなHPを探しやりたいことに近いVBAを見つけましたが コ-ドの変更が出来ません(全くの初心者なもので) どなたか、(分かり易く)ご教授していただけませんか 宜しくお願い致します 使用していますのは エクセル2000 OSはXPです Sub TEST() Dim seru As Range, W As Double, L As Double Dim RW As Double, RH As Double, GW As Double, GH As Double On Error GoTo Errorline Set seru = Application.InputBox("図形を挿入する範囲をドラッグして下さい", "画像挿入範囲の選択", Type:=8) Application.Dialogs(xlDialogInsertPicture).Show RW = seru.Width RH = seru.Height With Selection.ShapeRange GW = .Width GH = .Height .Top = seru.Top .Left = seru.Left .ScaleWidth (RW / GW), msoFalse, msoScaleFromTopLeft .ScaleHeight (RH / GH), msoFalse, msoScaleFromTopLeft End With Errorline: End Sub

  • エクセル。マクロの記録で出来たVBAを書き直したい。

    エクセル2000(OSはWindows2000)でマクロの記録を行いました。 四角形を出してA1セルにリンクさせフォント等の設定をしたものです。 Sub Macro5() ActiveSheet.Shapes.AddShape(msoShapeRectangle, 200#, 100#, 140#, 80#). _ Select ExecuteExcel4Macro "FORMULA(""=R1C1"")" With Selection.Font .Name = "Century Gothic" .FontStyle = "太字" .Size = 72 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With Selection.ShapeRange.Fill.Visible = msoFalse Selection.ShapeRange.Fill.Transparency = 0# Selection.ShapeRange.Line.Weight = 0.75 Selection.ShapeRange.Line.DashStyle = msoLineSolid Selection.ShapeRange.Line.Style = msoLineSingle Selection.ShapeRange.Line.Transparency = 0# Selection.ShapeRange.Line.Visible = msoFalse End Sub これを、実際には四角形をセレクトしないで実行させたいのです。 With ActiveSheet.Shapes.AddShape~ End With といった形になるのでしょうが、どうもうまく出来ません。 ご教示いただければ幸いです。

専門家に質問してみよう