
Sheets("Sheet1")に貼り付けたJ-pegの画像(=シンボルマーク)を別なシートに貼り付けるのは下記のVBAで出来ました。ただ、これでは貼り付け先のシートのセルK12が、貼り付け元のK12と同じ位置でないと思った場所に張り付きません。
そこでセルで場所を指定するのではなく、座標のようなもので指定する方法はないものかと考えた次第です。
オートシェイプなどは座標指定で作成できるのですが、J-pegのような画像はどうすればいいのでしょうか?
Sub TEST()
Sheets("FACE").Shapes("シンボルマーク").Copy
ActiveSheet.Range("K12").Select
ActiveSheet.Paste
End Sub
No.4ベストアンサー
- 回答日時:
#1です。
>この場合、ファイルをエクセルにくっつけて渡すなんてこと
>はできないものでしょうか?(別々にではなくあくまでエク
>セルのブックに付属した形で)
Excelのブックに付属した形にするなら、コピーペーストする方がいいと思います。一旦挿入した画像を別途保存するのは、簡単には出来ないと思います。
複数のシートで同じような作業をするなら、次のような方法も考えられます。
Function CpyMrk(MrkNM As String, myTop As Single, myLeft As Single)
Sheets("FACE").Shapes(MrkNM).Copy
ActiveSheet.Paste
ActiveSheet.Shapes(MrkNM).Top = myTop
ActiveSheet.Shapes(MrkNM).Left = myLeft
End Function
Sub test()
CpyMrk "シンボルマーク", 10, 10
End Sub
No.3
- 回答日時:
#1です。
お礼の中でのご質問の件ですが、>それともオートシェープのように一行で座標指定する書き方
>もあるのでしょうか?
ペーストでは、直接座標を指定できないと思います。
AddPictureメソッドを使ったらどうでしょうか?
ActiveSheet.Shapes.AddPicture "フルパスファイル名" _
, msoFalse, msoTrue, 100, 200, 100, 100
AddPictureメソッドという手もあるんですね。
この場合、ファイルをエクセルにくっつけて渡すなんてことはできないものでしょうか?(別々にではなくあくまでエクセルのブックに付属した形で)
No.2
- 回答日時:
>それともオートシェープのように一行で座標指定する書き方もあるのでしょうか?
ないと思います。
本題から少し離れ、関連して
(数値指定するとき)
もし垂直に5つ並べるなら、コピーでなく、いっそのことAddメソッドを繰り返して
Sub TEST01()
Dim myTop As Single, myLeft As Single
For i = 1 To 5
mleft = 100
mtop = (i - 1) * 100 + 50
ActiveSheet.Shapes.AddShape(msoShapeSun, mleft, mtop, 50#, 50#).Select
Next i
End Sub
水平に並べるならmleftを
mleft = (i - 1) * 100 + 50
mtop = 100
にしてはどうでしょう。
(カーソル位置指定)
1個1個指定しては、実行となりますが
#1のコードを実行すると、どうも
アクチブセルの置き所と貼りつけられたシェイプの位置は
相関関係がありそうですが、良く判りません。初めにコピーする時のアクチブセルの置き所とシェイプとの位置関係を引きずるようでもありますが、自信なし。
セルの位置と関連ずけるなら、
For i = 1 To 5
mleft = Cells(i, 1).Left
mtop = Cells(i, 1).Top
ActiveSheet.Shapes.AddShape(msoShapeSun, mleft, mtop, 50#, 50#).Select
Next i
なども可能です。
またTopLeftCellと言うプロパティがあるようですが、値の取得のみで、設定はさせてくれません。
ご参考までに。ご質問と
ピントがずれていた場合はご免。
No.1
- 回答日時:
COPY,PASTEでやるなら、一旦元の座業位置を保存し、ペースト後のshapeに適用するのが普通かと思います。
Sub TEST()
Dim myTop As Single, myLeft As Single
myTop = Sheets("FACE").Shapes("シンボルマーク").Top
myLeft = Sheets("FACE").Shapes("シンボルマーク").Left
Sheets("FACE").Shapes("シンボルマーク").Copy
ActiveSheet.Paste
ActiveSheet.Shapes("シンボルマーク").Top = myTop
ActiveSheet.Shapes("シンボルマーク").Left = myLeft
End Sub
さっそくありがとうございました。これならオリジナルと寸分違わない位置に配置できますね。勉強になりました。
ところで、オートシェープだと
ActiveSheet.Shapes.AddShape(msoShapeSun, 509.25, 47.25, 141#, 138#).Select
のように、直接、座標を入れられますが、Copyで持ってくるものは、この場合、myTopやmyLeftに代入するしか方法はないですか?
それともオートシェープのように一行で座標指定する書き方もあるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) 複数シート一括作成後に、特定範囲の数式は値で貼り付けしたい 3 2022/10/07 11:18
- Visual Basic(VBA) 4月~3月まで12カ月横に並んだ表へ指定範囲を貼り付けたい。 Sheet2の指定範囲、Range(" 2 2022/11/30 16:37
- Visual Basic(VBA) 別ブックからシートのコピー 3 2022/04/01 20:07
- Visual Basic(VBA) VBAマクロ 決まっていない行を選択して別シートへ貼付け 4 2023/02/16 16:08
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 09:50
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/03/02 08:40
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルVBA 画像を貼り付けるセル位置を指定する方法
Excel(エクセル)
-
マクロで貼り付け位置を可変させる方法が知りたいです。
Excel(エクセル)
-
エクセルvbaでの図形のカット(コピー)ペーストについて
Excel(エクセル)
-
-
4
VBAによるセル内の画像の位置調整
Excel(エクセル)
-
5
VBA Shapes コピーと名前
Excel(エクセル)
-
6
VBAでセルを指定した画像のコピー&ペーストを繰り返したい
Excel(エクセル)
-
7
【VBA】写真の縦横比を変えずに貼り付ける
Visual Basic(VBA)
-
8
エクセルVBAで選択状態を解除のしかた
Excel(エクセル)
-
9
エクセルで別シートの同じ位置にオブジェクトをコピーしたい
その他(Microsoft Office)
-
10
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
11
VBAで選択した画像を貼り付けたい
Excel(エクセル)
-
12
マクロ自動コピペ 貼り付ける場所が変わる場合
その他(Microsoft Office)
-
13
マクロで選択した図形の選択状態を解除するには
Excel(エクセル)
-
14
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
15
特定の名前のオートシェイプの有無を知りたい(エクセルVBA)
Excel(エクセル)
-
16
マクロを実行すると画像がズレてしまいます
その他(Microsoft Office)
-
17
Excel VBAでセル内の画像を選択したい
Excel(エクセル)
-
18
エクセルのマクロでSelection.Shaperangeを使用した時のエラーについて
Visual Basic(VBA)
-
19
VBA Shapesの座標からセル位置取得について教えてください
Visual Basic(VBA)
-
20
vba クリップボードクリアについて教えてください
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UWSCのCHKIMG関数について
-
配列について
-
Excel VBAで他アプリケーション...
-
UWSCのプログラミングついて教...
-
エクセルVBAで、MsgBox やInput...
-
アプリケーションのインターフ...
-
お家デートをしててハグを長い...
-
「PC Helpsoft Driver Updated...
-
TextBoxの入力・表示の判別方法
-
ACCESS2003でカウンタとボタン...
-
SQL EXCEL VBA 接続
-
AS3でランダムな画像入れ替わり...
-
アクセス全くの初心者です。A...
-
CMD.Executeの結果をメッセージ...
-
Googleフォーム・複数人の申し...
-
Excelシート上のマクロを登録し...
-
アメブロで、スクリプトエラー...
-
c 画像の一致を調べる
-
内部処理形式ってなんですか
-
画像について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C#で、画像の、指定した座標の...
-
UWSC画像認識で座標の位置がず...
-
C言語でグラフ作成??
-
Excel VBAで他アプリケーション...
-
VBA HTML要素または文字の座標...
-
uwscについて、同一の画像(仮...
-
VBでクリックイベントを発生さ...
-
エクセルVBAで画像を貼り付ける...
-
マウスイベントが動かない
-
UWSCのプログラミングついて教...
-
PostScriptについて
-
VBでデスクトップ上のアイコン...
-
UWSCのCHKIMG関数について
-
LineTo,MoveToについて
-
マウスカーソルの移動
-
UWSファイルの編集?
-
DirectX テクスチャの拡大
-
VBAで ScreenToClient を使いたい
-
高さのあるクォータービューの...
-
UWSCでPEEKCOLORを使い指定ウィ...
おすすめ情報