アプリ版:「スタンプのみでお礼する」機能のリリースについて

A列からC列に貼り付けた画像を印刷範囲に指定したいです
下記コードのどの部分を変えればいいでしょうか

今後、A列からD列のパターンも作成するので解説もあると嬉しいです。


Sub test()
Dim shp As Shape
Dim rng As Range
Dim r As Long
For Each shp In ActiveSheet.Shapes
If Not shp.Name Like "Drop Down *" Then '入力規則以外
If shp.Type <> msoFormControl Then 'ボタン(フォームコントロール)以外
Set rng = Range(shp.TopLeftCell, shp.BottomRightCell)
If rng.Column = 1 Then
If rng.Row + rng.Rows.Count - 1 > r Then
r = rng.Row + rng.Rows.Count - 1
End If
End If
End If
End If
Next shp
ActiveSheet.PageSetup.PrintArea = Range("A1:A" & r).Address
ActiveSheet.PrintPreview
End Sub

A 回答 (1件)

こんにちは



>下記コードのどの部分を変えればいいでしょうか
そもそもの不明点が多すぎるので、どこを変えれば良いのか判断がつきません。
なさりたいことを、正確に文章で示していただければ、アドバイスできるかも知れません。


特に、以下の点が不明です。
・印刷範囲の設定方法
ループしてるってことは複数のshapeがあることが前提なんでしょうけれど、そのうちで条件に合致する、シートの一番下にあるものまでを印刷範囲にしたいということでしょうか?
行番号がが大きな行に存在する場合には、必ずしも1ページには収まりませんけれど、それはOK?

・対象とする画像(?)のサイズ
>A列からC列に貼り付けた画像~
特に「A列からC列」というサイズをチェックをしているようには見受けられません。
4列分、5列分のものがあっても、3列分に収まっているものだけに限定するということでしょうか?
その際に、2列のもの(例えば、BC列)は除外するという意味でしょうか?
あるいは、A:C列内に納まってさえいれば、1列内のものでも対象にするということでしょうか?

・対象とするオブジェクトの種類
文章では「画像」とありますが、実際のコードでは「Drop Down以外、msoFormControl以外」という限定の仕方をしています。
この条件だと「画像」だけを選別しているわけではないように見受けられます。
(結果的にFormControlまたは、DropDownという名称以外のものは全て対象になります)
例えば、ActiveXのコントロールとか、図形なども含まれちゃいますけれど、そういう意図でしょうか。
デフォルトでは、いわゆる画像のName属性は「Picture #」のようになると思いますが、いろいろとReNameされている可能性があるということでしょうか?
(「Drop Down」という名称は、デフォルトでは付かないと思いますけれど・・)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!