機能と数式 | VBA | セミナー | オンラインソフト | お問い合わせ | その他
Top > Excel > VBA

ワークシートの名前を変更する



ワークシートの名前を変更するにはどうしたらいいでしょう。え?簡単ですって?なるほど、次のようにWorksheetオブジェクトのNameプロパティに変更したい名前を指定すればいいんですね。

Sub Sample1()
    ActiveSheet.Name = "合計"
End Sub

はい、確かにその通りです。ですが、今回のテーマはちょっと違います。

たとえばExcelで入力作業をしていたとします。そんなとき、シートの名前を変更したくなったらどうしますか?普通はシート見出しをダブルクリックして、新しいシート名を入力します。でも、入力作業を続けているときって、両手がキーボード上にありますよね。できればマウスを使わずに、キーボードだけで新しい名前に変更したいものです。それもInputBoxなんか使わないで、シート見出し上で直接入力したいです。

マクロを使わない方法もあります。
[Alt]キーを押しながら[O]キーを押して[書式]メニューを開きます。そのまま[H]→[R]と押して、[シート]-[名前の変更]を実行すれば、アクティブシートのシート見出しが編集可能になります。この操作をマクロで実行すれば、シート見出しの名前を直接編集できそうです。

キーが押されたことにするには、SendKeysステートメントを使います。SendKeysに続けて、押したことにしたいキーを指定すれば、そのキーが押されたものとみなしてくれます。ちょっと表現がややこしいですね。たとえば次のコードは、アクティブセルにtanakaと入力します。マクロは、ワークシート上から実行してください。VBEから実行するとVBEのコードペインに入力されちゃいますから。

Sub Sample2()
    SendKeys "tanaka"
    SendKeys "{Enter}"
End Sub

{Enter}はEnterキーを表します。こうした特殊なキーは次のように指定します。以下、ヘルプから抜粋です。

キーコード
BackSpace{BACKSPACE}、{BS}、または {BKSP}
Ctrl + Break{BREAK}
CapsLock{CAPSLOCK}
Del または Delete{DELETE} または {DEL}
{DOWN}
End{END}
Enter{ENTER}または {~}
Esc{ESC}
Help{HELP}
Home{HOME}
Ins または Insert{INSERT} または {INS}
{LEFT}
NumLock{NUMLOCK}
PageDown{PGDN}
PageUp{PGUP}
PrintScreen{PRTSC}
{RIGHT}
ScrollLock{SCROLLLOCK}
Tab{TAB}
{UP}
F1〜F16{F1}〜{F16}

また、ShiftキーやAltキーなどが押された状態は次のように表します。

キーコード
Shift
Ctrl
Alt

Shiftキーを押しながら上矢印キーを押す操作は「"+{UP}"」、Ctrl+Shift+PageUpなら「"^+{PGUP}"」です。
では、このSendKeysステートメントを使って、さっきのキー操作を表してみましょう。

Sub Sample3()
    SendKeys "%OHR"
End Sub

このマクロを、セルの右クリックで表示されるショートカットメニューの一番上に登録しておきます。ショートカットメニューにマクロを登録する方法は「セルの右クリックメニューに独自のコマンドを追加する」をご覧ください。シート名を変更したいときは、アプリケーションキーまたはShift+F10を押してメニューを開きます。メニューが開いた最初はどのコマンドも選択されていませんから、一度下矢印キーを押してからEnterキーを押します。ちなみに、アプリケーションキーとは下図のキーです。








このエントリーをはてなブックマークに追加