Excel で VBA を使用した場合、シート名を 31 文字以上の名前に変更するとエラー メッセージが表示されシートを移動させる処理が行えなくなる

現象
Microsoft Excel 2000、Microsoft Excel 2002、Microsoft Office Excel 2003、Microsoft Office Excel 2007 および Microsoft Excel 2010 でシート名を 31 文字以上の名前に変更して VBA を実行すると、シートをまたぐシートの移動が行えなくなります。この現象は、シート名を 31 文字以上の名前に変更しようとする際、IME をオンにしている場合にのみ発生します。シート名を 31 文字以上の名前に変更しようとする際に直接入力モードの場合は、現象は発生しません。なお、シート名の最大表示文字数は 31 文字です。
回避策
この現象を回避するには、以下のいずれかを実行します。

方法 1 : 手動でシートを移動する

マウスを使いシートのタブをドラッグすることでシートを移動できます。VBA を使用してシートをまたぐシートの移動ができない場合でも、手動でシートを移動することは可能です。

方法 2 : シート名を変更する

31 文字以上の名前に変更しようとしたシート名を 30 文字以内に設定します。ただしシート名を変更する際、IME をオンにしている必要があります。VBA を使用してシート名の変更を行ったり、直接入力モードでシート名の変更を行った場合は、この現象を回避できません。
状況
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
詳細

問題の再現手順

  1. 新規ワークブック (Book1.xls) を開きます。
  2. Sheet2 のシートのタブを右クリックし [名前の変更] をクリックします。
  3. シート名として以下のように 31 文字を入力します。
    あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほま
  4. IME をオンにした状態で「あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほま」の最後にカーソルを置き、キーボードから文字を入力します。
    : シート名の最大表示文字数は 31 文字なので、この手順を行っても実際に追加した文字は入力されません。
  5. シート内のセルをクリックしてシート名の変更を確定します。
  6. 以下の VBA コードを実行します。
    Worksheets("Sheet1").Move after:=Worksheets("あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほま")

結果

以下のエラー メッセージが発生します。
実行時エラー : 1004 Worksheet クラスの Move メソッドが失敗しました
手順 6 で以下の VBA コードを実行すると、エラー メッセージは発生しませんがシートの移動も行われません。
ExecuteExcel4Macro ("WORKBOOK.MOVE(""Sheet1"", ""Book1"",2)")
プロパティ

文書番号:950220 - 最終更新日: 10/04/2016 18:01:00 - リビジョン: 6.0

Microsoft Office Excel 2007, Microsoft Excel 2002 Standard Edition, Microsoft Excel 2000 Standard Edition, Microsoft Excel 2010

  • kbharmony kbtshoot kbexpertiseinter KB950220
フィードバック