« 夢想的BABYMETAL初考 その64 | トップページ | カレンダー形式でスケジュール管理(VBA)、Vectorに。 »

2016年11月18日 (金)

【Excel VBA】 msgboxでシート切り替え

 ウインドウ下部にあるシートタブにマウス移動して、
クリックするのは、結構面倒なので、メッセージボックスの「いいえ」で
切り替えできるコードを作ってみた。

 定型ブック・シートを配布し、それを回収して集計するような場合、
お目当てのシートがアクティブになっていなかったり、シート名がバラバラ
だったり、いろいろとする場合、ブックオープンして、シート切り替えするのが
面倒だったりするので、作成してみた次第。

 ある処理の一部で、使用することになるコードです。

 
Sub シート切り替え2()

Dim Atai As Variant
Dim Atai1 As Variant

Atai = ""

Do While Atai <> vbCancel
    Atai = MsgBox("このシートのA8に値を入力しますか? " & vbCrLf & _
                "はい=実行、いいえ=次シート、キャンセル=処理終了", vbYesNoCancel)
    If Atai = vbCancel Then End
    If Atai = vbNo Then
        If ActiveSheet.Next Is Nothing Then
            Sheets(1).Activate
        Else
            ActiveSheet.Next.Activate
        End If
    End If
    
    If Atai = vbYes Then
        Atai1 = ""
        Do While Atai1 = ""
            Atai1 = InputBox("入力する値はなにですか?" & vbCrLf & "入力された値はA8に代入されます。")
        Loop
        ActiveSheet.Range("a8") = Atai1
    End If

Loop

End Sub


Sheet_change
 メッセージボックスの「いいえ」では、シート切り替えを順に繰り返します。
「キャンセル」は、マクロ終了します。
「はい」は、今回はA8セルに値を入力するようにしていますが、
この部分はいろいろとアレンジすると、このコード全体も使い道が広がるだろうと
思います。
例として、シートを確認(人が目視チェック)して、そのシートをコピーするなり、
シート上の値をコピーしたり、計算したりなどがあると思います。

 書類を人が目視チェックなり確認するなり、まだまだ瑣末な事務処理は残っている
ものです。突発的な、一時的な集計なり、繰り返し処理なりに、素早く対応して
自動化できるところが、EXCEL VBAの良さでしょうか?
ですから、実践的にEXCEL VBAの使い方って、おそらく、コードのみで完結させず、
コードと関数とエクエルの機能すべてを使って、いかに素早く他の人に分かり易い
コードを作るかってことになるのではないでしょうか。

|

« 夢想的BABYMETAL初考 その64 | トップページ | カレンダー形式でスケジュール管理(VBA)、Vectorに。 »

「ExcelVBA」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/83128/64508626

この記事へのトラックバック一覧です: 【Excel VBA】 msgboxでシート切り替え:

« 夢想的BABYMETAL初考 その64 | トップページ | カレンダー形式でスケジュール管理(VBA)、Vectorに。 »