
エクセル2000でVBA使用の場合の質問です。
既にシートに表や画像ファイルが配置されています。
あちこちの他データベースから、送付されてくるデータをそのシートの下端に自動で追加するマクロを組んでいます。
しかし、シートの一番下が不定な大きさの画像ファイルであった場合に、次のデータが、既にある画像に隠されない位置から貼り付けたいのですが、画像の最下位置をセル位置で取得する方法が判りませんでした。
こういう場合、どのような方法で取得すればいいのでしょうか?
最下データは必ずしも画像とは限らないので、出来れば同じコマンドかルーチンで画像であってもセル内データであっても、最下端セル(ここでは画像にが被っていないセルか、ヌルでないセル)位置、或いは最初の空きセル(ここでは、画像で隠されていず、かつヌルセルの位置の意味)位置を取得できれば嬉しいのですが、それが無理な場合、最後が画像か非ヌルセルかを判断した上で、画像だった場合の最下端情報を取得する方法(非ヌルセルと判断出来れば、情報取得方法はいくつか知っています)のどちらかを知りたいのです。
No.2ベストアンサー
- 回答日時:
画像、図形の最終は For Each で全て調べています。
セルは、A列からIVまで調べています。求めた行+1が挿入する位置になります。
標準モジュールに貼り付ける例です。
↓
Sub searchEndRow()
Dim EndRow As Long '求める最終行
Dim shp As Shape '図形
'画像、図形の最終行を求める
For Each shp In ActiveSheet.Shapes
EndRow = Application.Max(EndRow, shp.BottomRightCell.Row)
Next
'最終入力セルの行を求める
Dim cl As Integer '列カウンタ
For cl = 1 To 256
EndRow = Application.Max(EndRow, Cells(65536, cl).End(xlUp).Row)
Next
MsgBox "挿入する行は " & (EndRow + 1) & " 行目です"
End Sub
この回答への補足
具体的な例まで示していただきながら、返事が送れまして、大変申し訳ありませんでした。
こちらの作業に戻れ次第、改めて御礼させていただきます。
みなさんのおかげで、無事解決しました。
ありがとうございました。
他の処理部分とのカラミで、nishi6さんの方を採用させていただくことになりましたが、勉強になりました。
ポイントはどうしても公平に振るわけにはいけませんので、勝手ながら、採用させていただいた、ということで、nishi6さんを優先させていただきました。
これからもよろしくご指導願います。
No.1
- 回答日時:
画像が配置されている列とデータが入力されている列は同じなのでしょうか?
仮に両方が列Aにあるとした場合ですが、
最下画像の下端の行番号は
Shapes(Index).BottomRightCell.Row
で取得できます。
データの下端は
Cells(65536, 1).End(xlUp).Row
で取得するのが最も一般的でしょう。
この二つのうち大きい方の、一つ下の行が次の画像をはる行になります。
もし複数の列で判断するなら、必要な列をループで順に判断して
最大値を取り出すようにすれば良いしょう。
この回答への補足
早速のご返事にもかかわらず、週末ちょっと立てこんでまして、反応が遅くなり、申し訳ありませんでした。
>画像が配置されている列とデータが入力されている列は同じなのでしょうか?
そうです。Aになっています。
割り込みで他の用が入ったので、教えていただいた方法はまだ試せていませんが、そろそろ元へ戻れそうなので、早速試して、改めてお礼させていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Excel VBAでセル内の画像を選択したい
Excel(エクセル)
-
エクセルVBA 画像を貼り付けるセル位置を指定する方法
Excel(エクセル)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
-
4
エクセルマクロでシート内にある画像のみを選択する
Excel(エクセル)
-
5
【VBA】写真の縦横比を変えずに貼り付ける
Visual Basic(VBA)
-
6
VBAでセルを指定した画像のコピー&ペーストを繰り返したい
Excel(エクセル)
-
7
Application.Max
Visual Basic(VBA)
-
8
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
9
EXCEL VBAでオートシェイプの重なりを検知するには?
Excel(エクセル)
-
10
マクロを実行すると画像がズレてしまいます
その他(Microsoft Office)
-
11
Excelマクロ 選択画像の大きさを100%に
その他(Microsoft Office)
-
12
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
13
VBA Shapesの座標からセル位置取得について教えてください
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定の文字がある行以外を削除...
-
Excelで非表示のセルをとばして...
-
【Excel関数】UNIQUE関数で"0"...
-
Excelのフィルター後の一番上の...
-
結合されたセルをプルダウンの...
-
Excel グラフのプロットからデ...
-
エクセルで特定の文字列が入っ...
-
エクセル 時間の表示形式AM/PM...
-
エクセル 上下で列幅を変えるには
-
エクセル マクロで数値が変っ...
-
エクセルVBA 最終行を選んで並...
-
excel 小さすぎて見えないセル...
-
エクセル マクロ オートフィ...
-
電話番号の入力方式が違うデー...
-
エクセルで昨日までの日付デー...
-
【EXCEL】連続データの個数を抽...
-
Excel ウインドウ枠の固定をす...
-
EXCELで最後の行を固定
-
セルに値が入力されると隣りの...
-
EXCEL 「最後のセル」のリセット
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel関数】UNIQUE関数で"0"...
-
特定の文字がある行以外を削除...
-
Excel グラフのプロットからデ...
-
エクセル 上下で列幅を変えるには
-
エクセルで特定の文字列が入っ...
-
Excelのフィルター後の一番上の...
-
結合されたセルをプルダウンの...
-
エクセル マクロで数値が変っ...
-
エクセルのセルに指定画像(.jpg...
-
[EXCEL]ボタン押す→時刻が表に...
-
excel 小さすぎて見えないセル...
-
A1に入力された文字列と同じ文...
-
エクセル マクロ オートフィ...
-
excelのデータで色つき行の抽出...
-
エクセルVBA 最終行を選んで並...
-
Excel ウインドウ枠の固定をす...
-
EXCELで最後の行を固定
-
EXCEL VBA マクロ 別シートの...
-
Excelで非表示のセルをとばして...
-
VBAで色の付いているセルの行削除
おすすめ情報