人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルVBAに関する質問です。お気持ちのみですが300P差し上げます。

コメント蘭に示す動作をするマクロを作って下さいませ。


●質問者: ReoReo7
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:VBA エクセル コメント マクロ 差し
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● きゃづみぃ
●300ポイント ベストアンサー

前提条件

階層 アドレス

は 一行目から始まるものとし

アドレスの列のセルの書式設定は、すべて文字列としておいてください。

テストとして

階層の最初の1がA1で

B1のセルを選択した状態から実行して 例になるように作ってあります。



Sub AutoAddress()
r = ActiveCell.Row
c = ActiveCell.Column

For a = r To 65536
 If Cells(a, c - 1).Value = "" Then Exit For
 d = Cells(a, c - 1)
 If Not IsNumeric(d) Then Exit For
 Level = d
 If a = 1 Then
 PreviousAddress = Right(r + 100, 2)
 Else
 d = Cells(a - 1, c - 1)
 If Level = d Then
 PreviousAddress = Cells(a - 1, c)
 e = Int(Right(PreviousAddress, 2))
 e = e + 1
 PreviousAddress = Left(PreviousAddress, Len(PreviousAddress) - 2) & Right(e + 100, 2)
 End If
 If Level - 1 = d Then PreviousAddress = Cells(a - 1, c) & ".01"
 If Level + 1 = d Then
 PreviousAddress = Cells(a - 1, c)
 PreviousAddress = Left(PreviousAddress, Len(PreviousAddress) - 3)
 e = Int(Right(PreviousAddress, 2))
 e = e + 1
 PreviousAddress = Left(PreviousAddress, Len(PreviousAddress) - 2) & Right(e + 100, 2)
 End If
 End If

 Cells(a, c) = PreviousAddress
Next a
End Sub
◎質問者からの返答

ありがとうございます!

おかげさまで、かなり使いやすいVBAができました。

また、参考になる点が多々ありました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ