No.1ベストアンサー
- 回答日時:
マクロのサンプルを2つ書きました
picCenterは処理対象のセルを固定しています(この例ではアクティブなシートのA26セル)。
またselCenterは、シート上で選択されたセルを処理対象とします。(ただし選択されているのが結合セルでない場合は、先頭の1セルだけを処理対象範囲とします)
いずれも対象セル範囲にある画像を「対象セル範囲の中央」に配置します。ただし画像がセル範囲より大きいときは何もしません。
マクロはALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。マクロの実行はワークシート画面に戻ってALT+F8でマクロ一覧を開き、マクロ名を選択して「実行」ボタンです。
とりあえず「16行4列を接合(左上がA26)しています」の中に画像を貼り付けてマクロを動かしてみてください
Sub picCenter()
Dim p As Object
Dim rng, trg As Range
Const adr As String = "A26" '処理対象セルの左上のアドレス
If Range(adr).MergeCells Then
Set rng = Range(adr).MergeArea
Else
Set rng = Range(adr)
End If
For Each p In ActiveSheet.Pictures
Set trg = Intersect(rng, p.TopLeftCell)
If Not trg Is Nothing Then
If p.Width < rng.Width Then
p.Left = rng.Left + (rng.Width - p.Width) / 2
End If
If p.Height < rng.Height Then
p.Top = rng.Top + (rng.Height - p.Height) / 2
End If
End If
Next p
End Sub
Sub selCenter()
Dim p As Object
Dim rng, trg As Range
If TypeName(Selection) = "Range" Then
If Selection.MergeCells Then
Set rng = Selection.Cells(1, 1).MergeArea
Else
Set rng = Selection.Cells(1, 1)
End If
End If
For Each p In ActiveSheet.Pictures
Set trg = Intersect(rng, p.TopLeftCell)
If Not trg Is Nothing Then
If p.Width < rng.Width Then
p.Left = rng.Left + (rng.Width - p.Width) / 2
End If
If p.Height < rng.Height Then
p.Top = rng.Top + (rng.Height - p.Height) / 2
End If
End If
Next p
End Sub
No.2
- 回答日時:
>接合(
セル結合の誤り?
>16行4列を接合(左上がA26)
1つの図(写真)はそうだとして、第2、第3の写真の置くシートと位置はどうなるの。
>エクセルには「シート」というものがあります。
1シートに1写真にするのですか。
>Excelで挿入した図を
図といっても、写真らしいから、「Excelで挿入した写真を」と質問したら。
ーー
読み込まれた写真は、シート上に浮いたようなもので、かろうじてエクセルでは、セルのTOP,LEFTなどに関連づけ(アンカー係留的に)て位置づけ出来ます。するとセルの幅の変動などに影響を受けるわけです。
ーー
私はB3:D13をセル結合してやってみました。
Sub test01()
MsgBox Range("B3").MergeArea.Address
t = Range("B3").MergeArea.Top
MsgBox t
l = Range("B3").MergeArea.Left
MsgBox l
h = Range("B3").MergeArea.Height
MsgBox h
w = Range("B3").MergeArea.Width
MsgBox w
End Sub
でセル結合後のセルのTop,・・などの値が取れます
ーー
>セルの中央に配置とは書いてあるが
余白をどうするか書いてない。書くべきです。10と仮定。
(セル幅、行高で10でも見た目違う。)
写真のトップなどの位置は
s_top=top+10
s_left=left+10
s_height=height-20
s_width=width-20
--
それでマクロの記録を修正して
Sub Macro1()
t = Range("B3").MergeArea.Top
l = Range("B3").MergeArea.Left
h = Range("B3").MergeArea.Height
W = Range("B3").MergeArea.Width
ActiveSheet.Pictures.Insert( _
"C:\Documents and Settings\xxx\My Documents\My Pictures\P1010038.JPG").Select
Selection.ShapeRange.Top = t + 10
Selection.ShapeRange.Left = l + 10
Selection.ShapeRange.Height = h - 20
Selection.ShapeRange.Width = W - 20
End Sub
xxxはユーザー。
ーー
写真100枚の繰り返しは、アクチブシートを順次移動して、そのアクチブシートに対し上記を行う。その前に各・毎シートで下記を行う
Sub test01()
ActiveSheet.Range("B3:D13").MergeCells = True
End Sub
ーー
写真の数の捉え方
写真が増えたときn増えた分の処理
など難しいことが未考察ですが。
ありがとうございます
おかげさまで出来ました
書き込む情報が足りずにすみませんでした
それなのに、いろいろわかりやすくありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelで、あるセルだけ入力させたい、オートフィルターも使わせたい際のシートの保護 2 2023/02/23 15:14
- その他(Microsoft Office) Wordを変換してExcelに挿入 2 2022/07/04 23:59
- Excel(エクセル) Excel ヘルプの[ロック解除]、<c0>、</c0> の意味は何ですか? 1 2023/02/20 16:58
- その他(Microsoft Office) EXCELでバーコードを作成すると白くなってコードが見えません 1 2022/04/04 14:24
- Excel(エクセル) Excelで、Excelの小テストで、中央揃えとかありますが、右クリックで、セルの書式設定から中央ぞ 3 2022/12/29 12:43
- Excel(エクセル) [スライサー]に関して、 1 2022/05/24 21:07
- ルーター・ネットワーク機器 Wifi中継器について 5 2022/10/08 08:35
- Word(ワード) Wordで破線をひくにはどうすれば良いのでしょうか。 5 2022/06/17 13:24
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- DIY・エクステリア 片切スイッチの接続について。 2 2022/10/02 16:45
このQ&Aを見た人はこんなQ&Aも見ています
-
見学に行くとしたら【天国】と【地獄】どっち?
みなさんは、一度だけ見学に行けるとしたら【天国】と【地獄】どちらに行きたいですか? 理由も聞きたいです。
-
「平成」を感じるもの
「昭和レトロ」に続いて「平成レトロ」なる言葉が流行しています。 皆さんはどのようなモノ・コトに「平成」を感じますか?
-
とっておきの手土産を教えて
お呼ばれの時や、ちょっとした頂き物のお礼にと何かと必要なのに 自分のセレクトだとついマンネリ化してしまう手土産。 ¥5,000以内で手土産を用意するとしたらあなたは何を用意しますか??
-
ちょっと先の未来クイズ第5問
日本漢字能力検定協会が主催し、12月12日に発表される、2024年の「今年の漢字」に選ばれる漢字一文字は何でしょう?
-
うちのカレーにはこれが入ってる!って食材ありますか?
カレーって同じルーから作っても、家庭によって入っているものや味が微妙に違っていて面白いですよね! 「我が家のカレーにはこれが入ってるよ!」 という食材や調味料はありますか?
-
Excelで挿入した図をセルの中央に配置したいのです。
Excel(エクセル)
-
エクセルで写真の挿入 セルの中央に写真を挿入する方法を教えてください。 (画像挿入→画像選択→デカイ
Excel(エクセル)
-
EXCEL VBAで 図形を中央寄せに関して質問です
Excel(エクセル)
-
-
4
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
5
Excel VBA素人です。VBAで図形のセンタリング方法ご教示下さい
Visual Basic(VBA)
-
6
excel2007で図形をシートの中央へ配置する方法
Excel(エクセル)
-
7
エクセルで画像を真ん中に貼り付けたい
Excel(エクセル)
-
8
Excel に貼り付けた図形が、保存した後、再度、開くと勝手に動いている。
Excel(エクセル)
-
9
【VBA】写真の縦横比を変えずに貼り付ける
Visual Basic(VBA)
-
10
セルの内容の条件に応じて図形の表示をしたりしなかったりする
Excel(エクセル)
-
11
メールアドレスの@の前後の呼び方を教えていただけませんか。
Outlook(アウトルック)
-
12
エクセルの改行時、2行目の頭にスペースを入れる方法
その他(パソコン・スマホ・電化製品)
-
13
送りがな「取り付け」と「取付け」の違い
日本語
-
14
条件に一致したときに画像を表示したいのですが・・。
Excel(エクセル)
-
15
リストと一致する値のセルを塗りつぶしたい。
その他(Microsoft Office)
-
16
エクセルVBA 画像を貼り付けるセル位置を指定する方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~12/6】 西暦2100年、小学生のなりたい職業ランキング
- ・ちょっと先の未来クイズ第5問
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
Excel内での検索結果をシート...
-
エクセル 数字をすべて○などの...
-
クリックすると文章が表示され...
-
マクロを実行すると画像がズレ...
-
Excelでセルをクリックす...
-
Excelで、図形内の文字をセルに...
-
シート保護とグループ化機能を...
-
エクセルでページ数をあるセル...
-
現在のセルの位置を返す関数は...
-
ページ内ハイパーリンクの表示...
-
【EXCEL】先週の月曜日の日付を...
-
Excel ハイパーリンクのURLを別...
-
太字に設定されているセルの個...
-
エクセルでセルをダブルクリッ...
-
エクセルでPDFリンクを大量...
-
フォントの色を指定して削除出...
-
Excel:セルの値(文字列)を数...
-
空白セルを空セルに置き換える...
-
選択したセル範囲に入っている...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
エクセル 数字をすべて○などの...
-
Excel内での検索結果をシート...
-
クリックすると文章が表示され...
-
太字に設定されているセルの個...
-
Excel ハイパーリンクのURLを別...
-
Excelでセルをクリックす...
-
エクセル 未入力セルがあると...
-
Excelで、図形内の文字をセルに...
-
マクロを実行すると画像がズレ...
-
現在のセルの位置を返す関数は...
-
フォントの色を指定して削除出...
-
エクセルでPDFリンクを大量...
-
エクセルでセルをダブルクリッ...
-
EXCELのセルや文字色の反映
-
【EXCEL】先週の月曜日の日付を...
-
エクセルでページ数をあるセル...
-
Excel2007 色のカウント (VBA)
-
セルがクリックされた回数をカ...
-
ページ内ハイパーリンクの表示...
おすすめ情報