本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

[XL]Lotus 1-2-3 のマクロで2バイトの文字列を入力すると一般保護違反

文書番号: 402412

最終更新日: 1998/02/03


この資料は以下の製品について記述したものです。


この記事は、以前は次の ID で公開されていました: JP402412

概要

本文書は、Lotus 1-2-3 (以下 1-2-3) で作成した「 2 バイトの文字列を入力する
マクロ」を Excel 5.0 で実行すると一般保護違反が発生する問題と回避策を
まとめています。

詳細

現象

1-2-3 で作成した「 2 バイトの文字列を入力するマクロ」を Excel 5.0 で実行する と、一般保護違反が発生します。
                     [アプリケーションエラー]
                 EXCEL で一般保護違反が発生しました。
    発生した場所は、モジュール SDMDBCS.DLL の 0005:365E 番地です。

回避策 1

先頭の文字が 2 バイトの場合にのみ発生する現象です。そのため、先頭に「半角
スペース」などを追加することで回避できます。先頭に追加した「半角スペース」
は、必要に応じてマクロで文字列を入力後、削除してください。

編集前

  \a      {GOTO}A8~
          仕事は捗っていますか? (Y/N)~
          {GET A9}~
          {IF A9="Y"} もう少しがんばりましょう!~
          {IF A9="N"} お茶にしましょう!~

編集後

  \a      {GOTO}A8~
          仕事は捗っていますか? (Y/N)~
          {EDIT}{HOME}{DEL 2}~
          {GET A9}~
          {IF A9="Y"} もう少しがんばりましょう!~{EDIT}{HOME}{DEL 2}~
          {IF A9="N"} お茶にしましょう!~{EDIT}{HOME}{DEL 2}~
{EDIT} {HOME} {DEL 2}~ は先頭に追加した「半角スペース」を削除するため
の記述です。

回避策 2

1-2-3 のマクロから Microsoft(R) Visual Basic(R) Programming System
Applications Edition (以下 VBA) のモジュールをコールすることができま
す。VBA で 2 バイトの文字列を入力を行なう場合は一般保護違反は発生し
ませんので、先頭に「半角スペース」を追加する必要はありません。
1-2-3 のマクロから VBA のモジュールをコールするサンプルは次の通りです。こ
のマクロを実行することによって、「回避策 1 」 と同じ結果が得られます。

1-2-3 マクロ

  \a      {GOTO}A8~
          {XLCALL Message1}~
          {GET A9}~
          {IF A9="Y"}{XLCALL Message2}~
          {IF A9="N"}{XLCALL Message3}~

VBA のモジュール

  Sub Message1()
      ActiveCell.Value = "仕事は捗っていますか? (Y/N)"
  End Sub
  Sub Message2()
      ActiveCell.Value = "もう少しがんばりましょう!"
  End Sub
  Sub Message3()
      ActiveCell.Value = "お茶にしましょう!"
  End Sub

注意

VBA のモジュールを記述する場合には、[挿入] - [マクロ] - [モジュール] コマン
ドを実行して作成した、モジュールシートに記述します。1-2-3 のようにワーク
シートに記述してもマクロとして扱われません。

Keywords: KBBUG KB402412
Technology: kbExcel500 kbExcelSearch kbExcelWinSearch

inserted by FC2 system