こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

ページ追加方法 について VBA

watabe007さま

何度も何度も申し訳ありません
エクセルVBAてお世話になっております

前回教えて頂いてから、理想通りに出来たのですが先方の要望が変わりました困っております

何も指定のないシート名の中で、何が何列何行くるかもわからない
空白列、空白行もある可能性もある、だがその中で一番長い行を探した上でその最終列の一行目にページ番号が追加されるようにしたい、という要望です

シート内全ての最終列を取得した上で、一番上に入れる方法はございますでしょうか?

何度も何度も申し訳ありません
どうかご教授頂けますと有難いです

投稿日時 - 2019-08-13 11:24:14

QNo.9645247

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

No.1,2です。

No.3さんが答えだしてくれたので
私は組みませんね。

投稿日時 - 2019-08-14 22:13:12

ANo.3

https://okwave.jp/qa/q9643009.html
これの延長にある話なんでしょうか。
求めている内容がよくわかりませんが
以下のコードでいかがでしょうか。

特にコードの説明はしませんので
読み取ってみてください。

期待と違うとか、よくわからなければ
聞いてください。  


Sub Sample()

 Dim Keys() As Variant  'シートの特定の部分文字列の羅列
 Dim KeysCount As Long '部分文字列の数
 Dim KeyCounter As Long '部分文字列のカウンター
 Dim ShCounter As Long 'シートカウンター
 Dim PageNum As Long 'ページ番号
 Dim MaxColNum As Long '最右列番号
 
 With ThisWorkbook
  Keys = Array("*XXX*", "*YY*", "*Z*", "*123*")
  KeysCount = UBound(Keys) + 1
 
  PageNum = 0
  For ShCounter = 1 To .Sheets.Count
   For KeyCounter = 1 To KeysCount
    If .Sheets(ShCounter).Name Like Keys(KeyCounter - 1) Then
     PageNum = PageNum + 1
     MaxColNum = .Sheets(ShCounter).UsedRange.Column
     .Sheets(ShCounter).Cells(1, MaxColNum + 1).Value = PageNum
     Exit For
    End If
   Next KeyCounter
  Next ShCounter
 End With

End Sub

投稿日時 - 2019-08-14 20:08:53

ANo.2

なるほど。
じゃあ今日の夜にちょっと家で組んでみますかね。
夜回答します。


それでは遅いならその旨回答下さい。

投稿日時 - 2019-08-14 16:42:27

ANo.1

VBAでやりたい事なんてググれば大抵出て来ますよ。


貴方がしたいのは
このサイトの中盤に有る「特殊な表の場合」のケースですね。
https://excel-ubara.com/excelvba4/EXCEL222.html

投稿日時 - 2019-08-13 23:34:21

お礼

回答ありがとうございます。
そちらのサイトは存じております。
私の説明が悪く分かりづらくて申し訳ありませんが、調べても分からないので聞いております
最終列を取得する、used~などネットにあるものは色々試しているのですが細かいところが理解できないのでお尋ねした次第です

投稿日時 - 2019-08-14 07:33:00

あなたにオススメの質問