インプットボックスで一度に入力したシート名とセル範囲を分離するには?

Question 79.2   Previous Next
新しく作ったシートの名前と、そのシート内のセル(B2,B3)を InputBoxを使って、同時に書くように、するにはどうすれば いいですか。
Answer   Copyright (C) 2006.9.6 永井善王
ご質問の意味を確認させてください。インプットボックスへの入力方法をお尋ねなのでしょうか?

「新しく作ったシートの名前」とは、新しく作ったシートに付ける名前のことで、例えば「集計」とかをインプットボックスへキーボードから入力したいのでしょうか?
そして、「そのシート内のセル(B2,B3)を」とは、「B2,B3」と入力したいのでしょうか?
インプットボックス
また、「同時に書く」ということは、1つのインプットボックスでいっぺんに入力するということでしょうか?

もしも、この意味で合っているなら、左図のように入力すれば良いのではというお答えになります。


もしかして、一度に入力した値からシート名とセル範囲を分離するマクロをお知りになりたいのであれば、下記のようになります。
上図の例では区切り文字としてExcel標準の ! を使っていますから、インプットボックスの入力値を Search関数で検索して最初に現れた位置を取得し、それを基準にしてシート名とセル範囲を Left関数と Mid関数で取得しています。
Sub インプットボックスで一度に入力したシート名とセル範囲を分離する()
    入力値 = InputBox("シート名とセル範囲を入力してください。")
    位置 = Application.WorksheetFunction.Search("!", 入力値, 1)
    シート名 = Left(入力値, 位置 - 1)
    セル範囲 = Mid(入力値, 位置 + 1, Len(入力値) - 位置)
End Sub
関連ページ ・ インプットボックスでセル範囲を入力する

 

Excel VBA Macro