• ベストアンサー

マクロでシートを探し出す場合

Sub SheetsSelect() Sheets("***").Select End Sub で、最初できてました。 ***には漢字が入ってました。 が、2つ目を作成するとできなくなりました。 日本語でシートを検索する場合、どうすればよいですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

私がやってみました。 シートを5つ作りました。4つ追加。 その1つのシート名を「東京」としました。 標準モジュールで Sub test01() Sheets("東京").Select End Sub を作り、実行しました。 東京というシートが捉えられていますが。 質問者の場合と、どう違いますか。 >2つ目を作成するとできなくなりました 何を作ったのか?

petitcoucou
質問者

お礼

違いは一つ目はマクロを作ったあとにボタンを作ってリンクさせて、二つ目はボタンを作ったあとに新規マクロでマクロを作成した点です。 エクセルは閉じてもいないので保存の仕方ではないと思います。 もう少し勉強します。

関連するQ&A

  • マクロでシート2~6のデータをシート1に転記したい

    マクロでシート2~6のデータをシート1に転記したいです。 シート2~6のデータを シート1に順番に転記したくてマクロの記録を利用して作成しました。 シート2~6は列は同じですが行数は異なります。 また行数は作業の都度異なります。 同じ記述が繰り返されているので もう少し記述が短くできるのではと思うのですが どうすればいいでしょうか? Sub データ更新() 'シート1の前回データをクリア Sheets("シート1").Select Range("A2:Q2").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlDown)).Select Selection.ClearContents Range("A2").Select Sheets("シート1").Select Range("A1").Select Sheets("シート2").Select Range("A1").Select 'ヘッダーも合わせて取得 Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("シート1").Select ActiveSheet.Paste Application.CutCopyMode = False Selection.End(xlDown).Select Selection.Offset(1, 0).Select Sheets("シート3").Select Range("A2").Select 'データのみ取得 Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("シート1").Select ActiveSheet.Paste Application.CutCopyMode = False Selection.End(xlDown).Select Selection.Offset(1, 0).Select Sheets("シート4").Select Range("A2").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("シート1").Select ActiveSheet.Paste Application.CutCopyMode = False Selection.End(xlDown).Select Selection.Offset(1, 0).Select Sheets("シート5").Select Range("A2").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("シート1").Select ActiveSheet.Paste Application.CutCopyMode = False Selection.End(xlDown).Select Selection.Offset(1, 0).Select Sheets("シート6").Select Range("A2").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("シート1").Select ActiveSheet.Paste Application.CutCopyMode = False Selection.End(xlDown).Select Selection.Offset(1, 0).Select End Sub

  • シートのマクロについて

    sheet1 をアクティブすると下記のマクロが実行されるようにしたのですが なかなかうまくいきません。 どなたか教えて下さい。 Sub クリア() Dim ans As Integer ans = MsgBox("全てクリアをしてもいいですか?", _ vbYesNoCancel + vbInformation, "クリア実行") Select Case ans Case vbYes Sheets("sheet1").Select Range("B4:W43,Z4:Z43,AA4:AA43").Select Selection.ClearContents Range("B4").Select Sheets("sheet1").Select Case vbNo MsgBox "NO" Case Else MsgBox "中止します" End Select End Sub

  • エクセル 複数シート検索のマクロ

    マクロ初心者です。 エクセルの文字列検索で、複数シートにまたがった場合のマクロ記述を知りたいです。 シートaとシートbの選択は下記となると思いますが、 Sub Macro1() Sheets(Array("a", "b")).Select Sheets("a").Activate End Sub その後で、検索窓([ctrl]+[f])を表示させたいのですが・・・。 よろしくご教示願います。

  • エクセル2007マクロ シート間のセルコピー

    [Sheet1]にあるデータを[Sheet2]にコピーするマクロボタンを[Sheet2]に作りたいのですが、マクロがよく分からないので、「マクロの記録」で作成してみました。 Sub siken() ' ' siken Macro ' ' Sheets("Sheet1").Select Range("A1").Select Selection.Copy Sheets("Sheet2").Select Range("A1").Select ActiveSheet.Paste Sheets("Sheet1").Select Range("B3").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("B3").Select ActiveSheet.Paste Sheets("Sheet1").Select Range("B6:D6").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("B6").Select ActiveSheet.Paste End Sub (実際はもっと多くのセルをコピーします) マクロを実行すると、ちゃんとコピーできるのですが、セルをコピーする都度[Sheet1]と[Sheet2]が交互に表示されます。 コピー元の[Sheet1]を表示させずにマクロを実行させるにはどのようにしたらよいのでしょうか? よろしくお願いします。

  • エクセルシートの順繰り表示マクロについて

    エクセルにて随時更新されるデータを全画面表示し、3枚のシートを5秒置きに順繰り表示させるようマクロを組みました。始めは順調なのですが、数時間たつとフリーズしてしまいます。そもそもエンドレスのマクロプログラム実行に無理があるのでしょうか。 または下記のプログラムに問題があるのでしょうか。ご教授お願いします。 Sub Macro1() Sheets("Sheet2").Select Application.OnTime Now + TimeValue("00:00:05"), "Macro2" End Sub Sub Macro2() Sheets("Sheet3").Select Application.OnTime Now + TimeValue("00:00:05"), "Macro3" End Sub Sub Macro3() Sheets("Sheet1").Select Application.OnTime Now + TimeValue("00:00:05"), "Macro1" End Sub

  • エクセル「マクロの記録」を少し直したい

    マクロの記録で作った下記を Sub Macro1() Sheets("Sheet1").Select Rows("6:6").Select Selection.Copy Sheets("Sheet2").Select Rows("2:2").Select ActiveSheet.Paste End Sub 以下のように書き換えたら、2行目(Paste)がエラーになりました。 Sub ts1() Sheets("Sheet1").Rows("6:6").Copy Sheets("Sheet2").Rows("2:2").Paste End Sub セレクトしないで行ないたいのです。 どう直せばいいでしょうか?

  • 「ctrl+J」でヒントが出る場合と出ない場合が

    VBA画面で Sub sample() End Sub の中に、 「sh」を入力して、「ctrl+J」を押すと、画像のように、ヒント(候補)がされます。 そして候補の中から「Sheets」を選択し、タブキーを押して「.」を打つと、 メソッドなどの一覧が出てきます。 しかし、 Sub sample() Sheets ("シート1") End Sub の状態で、「Sheets ("シート1")」の後に、「.」を入れると、 画像のようなメソッドなどの一覧が出てこないのですが、なぜでしょうか? Sub sample() Sheets("シート1").Select End Sub としたい場合は、 「Sheets("シート1")」の後に、手動で「.Select」を打たなければいけません。

  • マクロについて

    Sub FormShow() Qry.Show Private Sub CommandButton1_Click() Sheets("A").Select Sheets("B").Select Replace:=False Sheets("C").Select Replace:=False ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Sheets("Help").Select Sheets("A").Select End Sub のマクロが登録された「ボタン(フォームコントロール)」により実行した後に、 Bシート内のA1セルの中に"・"を検索し、 もし"・"があった場合は"WWW()"のマクロを実行、 "・"がなかった場合は"XXX()"のマクロを実行する。 これが中々上手くいかず困っております。 ご教授いただければ幸いです。

  • エクセル 複数シート検索のマクロ

    以前、下記の質問をさせてもらい ---- 以下 --------------- エクセルの文字列検索で、複数シートにまたがった場合のマクロ記述を知りたいです。 シートaとシートbの選択は下記となると思いますが、 Sub Macro1() Sheets(Array("a", "b")).Select Sheets("a").Activate End Sub その後で、検索窓([ctrl]+[f])を表示させたいのですが・・・。 ---- 以上 --------------- に対して、以下のご回答を受けたのですが、 Sub TEST01() Sheets(Array("a", "b")).Select Cells.Select Application.Dialogs(xlDialogFormulaFind).Show End Sub うまく行く場合もあるのですが(と思い解決で締め切ってしまいました)、大抵の場合(該当文字列が複数あるとき?)にフリーズしてしまいます。 上記マクロだと、「検索する文字列」タイトルで[次を検索][閉じる][置換]ボタンが表示され(古いOffice?)、 マクロを使用しない通常の[ctrl]+[f]だと、「検索と置換」タイトルで[検索]と[置換]タグが表示されます(Office2003)。 また、マクロを実行した後は通常の[ctrl]+[f]、[編集]-[検索]が効かなくなってしまいます。 この部分はフリーズとは無関係かもしれませんが・・・。 フリーズしないマクロの記述と、出来れば検索終了後に特定のシートに戻るようなマクロも追加したいです。 また、別件になりますが、ファイルを開いた時に必ず特定のシートに位置づけられる事ができればそれもご教授願いたいです。

  • シート名に自動で年月をつけたい!

    VBA初心者です。 「新規ページ作成」のマクロを作りました。 「H23.3」のシートの上で実行すると、新規ページを挿入し、 雛形というシートにある表をコピーするところまではできました。 そこに、シート名に自動で翌月(この場合は「H24.4」)をつけるにはどうすれば良いでしょうか? 不都合であれば、表記は「平成●年●月」等でも構いません。 また、「H24.4」で実行したら「H24.5」・・・・としていきたいです。 現在のところまでは下記のとおりです。 Sub 新規ページ作成() ' ' 新規ページ作成 Macro ' ' Sheets("H24.3").Select Sheets.Add Sheets("Sheet3").Select Sheets("Sheet3").Move Before:=Sheets(5) Sheets("雛形").Select Cells.Select Selection.Copy Sheets("Sheet3").Select Cells.Select ActiveSheet.Paste Application.CutCopyMode = False Range("A1").Select End Sub 質問の仕方に不備等があればご指摘下さい。 回答と併せてよろしくお願いします。

専門家に質問してみよう