『シート間の移動マクロ』(jojo)
同じBOOK内のシート間の移動方法(VBA)について質問させて頂きます。
■今現在、一つのBOOKには数百のシートが登録されています。 ■[data]というシートにはシート名が登録されています。内容は、
J列はシート名 K列にはコード番号 13行 (8015)豊田通商 8015 14 (8053)住友商事 8053 15 (8058)三菱商事 8058 16 (8077)小林産業 8077 17 (8202)ラオックス 8202 以下、下に続く。
今はJ列を利用してアクテイブセルという形で移動しています。
Sub シート間の移動() Dim シート名 As String シート名 = ActiveCell.Value
Sheets(シート名).Select
End Sub
-------------------
これをInputBoxを使って ------------------- Sub シート間の移動() Dim シート名 As String
Msg = "移動したいシートNoを入力して下さい。"
シート名 = InputBox(Msg, "No入力", "")
<この場所に、InputBoxから取り込んだ番号と同じ番号をK列から探し、その左隣の内容をシート名として取り込みたいのですが、どのように書いたらいいのか教えて下さい。>
Sheets(シート名).Select End Sub ------------------------------------
[excel2003][vista]
こんにちは。かみちゃん です。
> InputBoxから取り込んだ番号と同じ番号をK列から探し、その左隣の内容をシート名として取り込みたい
以下のような感じでいかがですか?
Sub シート間の移動2() Dim Msg As String Dim WS1 As Worksheet ' Dim シート名 As String Dim シート名 As Variant Dim m As Variant
Msg = "移動したいシートNoを入力して下さい。"
シート名 = Application.InputBox(Msg, "No入力", "")
If VarType(シート名) = vbBoolean Then
MsgBox "シート名の入力をキャンセルしました"
Exit Sub
End If
Set WS1 = Nothing
With Worksheets("data").Range("K:K")
m = Application.Match(シート名, .Cells, 0)
If IsNumeric(m) Then
On Error Resume Next
Set WS1 = Worksheets(.Cells(m, 0).Value)
On Error GoTo 0
If WS1 Is Nothing Then
MsgBox "指定されたシートは存在しません [ " & シート名 & " ]"
Exit Sub
End If
Else
MsgBox "指定されたシート名はK列に存在しません [ " & シート名 & " ]"
Exit Sub
End If
End With
If Not WS1 Is Nothing Then
WS1.Activate
End If
End Sub
(かみちゃん) 2009/07/05 16:27
早々の回答、有難う御座います。 マクロの実行結果ですが、K列のみ参照されるようで、実際にシート名が書かれているJ列の参照が出来ません。
シート名は4桁の数字ではなく、左にある (8015)豊田通商 というようなシート名になります。
宜しくお願い致します。 (jojo)
こんにちは。かみちゃん です。
> マクロの実行結果ですが、K列のみ参照されるようで、実際にシート名が書かれているJ列の参照が出来ません。
何をもってそのように判断されていますか? ちなみにK列は、数字の文字列ですか?それとも数値ですか?
「指定されたシート名はK列に存在しません」というメッセージが出るのであれば、InputBoxで入力した値が存在しないこと を意味します。 メッセージの内容が悪いのでしょうか? 「入力されたNoはK列に存在しません」としたほうがわかりやすいですか?
そういうメッセージであるにもかかわらず、K列存在するのであれば、 m = Application.Match(シート名, .Cells, 0) の部分を m = Application.Match(CLng(シート名), .Cells, 0) としてみてください。
(かみちゃん) 2009/07/05 17:04
> m = Application.Match(CLng(シート名), .Cells, 0)
この変更だけで移動できるようになりました。 今日は時間が無いので、明日にでもマクロの内容を勉強させて頂きます。 有難う御座いました。 (jojo)
[ 一覧(最新更新順) |
]YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.