エクセル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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) エクセル、画像ファイル名の書かれたセル(複数個所)に画像を一括で表示させる方法 1 2023/04/19 00:19
- Excel(エクセル) エクセル、セルの分割について 回答お願いいたします。 画像のように一つのセルを2つに分割する方法をご 3 2022/06/20 10:35
- Excel(エクセル) 【関数】【マクロ】データの転記の方法について 2 2023/07/26 15:22
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Excel(エクセル) エクセル VBA セルの結合 2 2022/09/07 11:48
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
エクセルVBAでセル番地を指定してオブジェクト名取得
Excel(エクセル)
-
エクセルVBAで画像を貼り付ける座標設定方法は?
PowerPoint(パワーポイント)
-
メッセージボックスを前面に表示させるには?
Visual Basic(VBA)
-
-
4
Excel(VBA)
Excel(エクセル)
-
5
【VBA】3個の図形をコピーしてSheet2に貼り付けたい
Excel(エクセル)
-
6
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[EXCEL]ボタン押す→時刻が表に...
-
エクセルで特定の文字列が入っ...
-
Excel グラフのプロットからデ...
-
エクセル マクロ オートフィ...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセル マクロで数値が変っ...
-
特定の文字がある行以外を削除...
-
Excel ウインドウ枠の固定をす...
-
エクセルVBA 最終行を選んで並...
-
エクセル 時間の表示形式AM/PM...
-
エクセル 上下で列幅を変えるには
-
エクセルマクロで偶数行(又は...
-
電話番号の入力方式が違うデー...
-
EXCELマクロを使い、空白行では...
-
結合されたセルをプルダウンの...
-
Excel2007で、指定範囲の行高さ...
-
AのセルとB行を比較して、一致...
-
Excel 空白行を上に詰めるマクロ
-
セルではなく行や列、シート全...
-
チェックボックスをクリックし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の文字列が入っ...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセル マクロ オートフィ...
-
[EXCEL]ボタン押す→時刻が表に...
-
AのセルとB行を比較して、一致...
-
特定の文字がある行以外を削除...
-
エクセル 上下で列幅を変えるには
-
エクセル マクロで数値が変っ...
-
Excel グラフのプロットからデ...
-
excelのデータで色つき行の抽出...
-
結合されたセルをプルダウンの...
-
アクティブになっている行をマ...
-
VBAで色の付いているセルの行削除
-
セルの色によって条件文をつけ...
-
excel 小さすぎて見えないセル...
-
電話番号の入力方式が違うデー...
-
Excelでカタカナ・ひらがな・英...
-
エクセルVBA 最終行を選んで並...
-
EXCELマクロを使い、空白行では...
-
EXCELで最後の行を固定
おすすめ情報