• 締切済み

excel(エクセル) マクロ 文字化け 海外

日本語のOSで製作されたマクロです。 海外(中国語版)のOSでエクセルを開き、マクロボタンを押したんですが、エラーメッセージが出ました。エラーメッセージは文字化けです。エラー時Dを押してマクロを見たのですが、?マークや空白がたくさんありました。 マクロを使いたいのですが、どうしてもよくわかりません。 日本語のOSでは、問題なく使えます。 初心者ですが、よろしくお願いします。 エラーの時、ヘルプを押しました。 只能在定義的範囲内存取陣列元件和集合物件成員。此錯誤有以下的起因和解決方法: ●引用了不存在的陣列元件. 陣列索引對此陣列索引範圍可能過大或過小,或是在應用程式中此點沒有指定範圍。検査陣列的宣告以確認其上界和下界。若使用的是重訂範圍的陣列,使用 UBound 和 LBound 函數來決定陣列存取。如果索引指定為變數,請検査変數名稱的字。 ●宣告陣列時沒有指定元件數目。例如,下列的程式碼就會導致此錯誤: ●Dim MyArray() As Integer ●MyArray(8) = 234 ' 導致錯誤 9。 Visual Basic 並不會將沒有指定範圍的陣列自動設為 0 - 10。必須使用 Dim 或 ReDim 來指定陣列中元件的數目。 ●引用了不存在的集合物件成員。 試著使用 For Each...Next 結構代替指定元件索引。 ●使用速寫法陣列索引,結果指定了錯誤的元件。 例如,當在集合物件上使用 ! 運算子時,! 自動指定了一個索引鍵。例如 object!keyname.value 和 object.item(keyname).value 是一樣的。在此例中,集合物件中如果 keyname 表示一個錯誤索引鍵,錯誤就會産生。若要改進此錯誤,在集合物件中使用正確的索引鍵名稱或索引。

みんなの回答

  • pulsa
  • ベストアンサー率57% (34/59)
回答No.3

さすがに手元に無い物でなんともですが、日本語の命令を一切使用せず、 >ロケール (国または地域) の設定を変更すると、数字、通貨、時刻、日付の標準設定はその国または地域に合わせて変更されます。 となっているので、これらに依存しない命令(CCurとかCDate辺りをさける)のみで構成されていれば、恐らく動作するハズです 日本語のSubなどがある時は、ローマ字にしてしまえば(Sub 合計→Sub goukei)問題ないと『思います』 あとは実際に使ってる人じゃないと実情はわからないですね 中国に赴任されている方たちのコミュニティなどに質問してみるのもいいかも知れません どこでやってるのか、そもそもそんな物あるのかも不明ですが、海外での赴任生活は心細いものがあると思うので、お互い知恵を出し合う場がある可能性が高いと思いますが… 中国 生活 コミュニティ と検索すると、結構引っ掛かりますね もう少しキーワードを増やせば何か当たるかも知れません すいません あんまり役に立ってないですね^^;

3895010
質問者

お礼

pulsaさん、回答をありがとうございます。

回答No.2

ANo.1です。 ANo.1は質問の内容から推測しただけで、中国語版Windowsも中国版語Excelも使ったことがないので以下も推測ですが・・・ (1)今、中国語版OSしか無く、中国語のエクセルで作動させる方法はありますか? 「何を」作動させる方法なのかがわからない文章ですが、たぶんマクロ(またはVBA)として答えます。 まず、質問の中で不思議な部分があるのですが、中国語版OSで中国語のExcelを正しく動かしているなら、 >エラーメッセージは文字化けです。エラー時Dを押してマクロを見たのですが、?マークや空白がたくさんありました。 と言う事はないと思います。 少なくとも正しく中国語のエラーメッセージが出るはずです。 とすると、Excelが中国語でないのかとも考えましたが、ヘルプの内容も中国語にならないはずだと思うので、コントロールパネルの地域と言語の設定で何か不具合があるのかもしれません。 (2)日本語OSを使う機会がある時にマクロを全部コピーし、中国語版OSにペーストすれば、マクロは作動しますか? 両方で動くように作ってあれば、マクロ(VBA)は基本的には動くはずだと思います。 どこをどのように作れば動くのか(動かないのか)に関しての詳しい事例はわかりませんが、少なくともオブジェクト名や変数名などは両方で使えるアルファベットにすべきだと思います。 ただ、もしかしたらunicodeの関係で、どうしても動かない場合も考えられますが・・・ 以上はどうしても推測なので、詳しくは誰かやったことある人にお願いします。

3895010
質問者

お礼

fumufumu_2006さん。回答をありがとうございます。 >少なくとも正しく中国語のエラーメッセージが出るはずです。 もう一度確認しました。ご指摘の通り、エラーメッセージは中国語でした。文字がわからず、文字化けだと思っていました。エラーメッセージ時の「D」は漢字で表示されてました。 マクロは、右のような感じです。Worksheets("   ? ").Activate 中国語版excelしか無く、マクロの空白部分や?は日本語ではないかと思います。 二つ回答して頂き、まことに感謝です。 少しずつ研究していきたいと思います。

回答No.1

多分ですが・・・ 「実行時エラー'9':インデックスが有効範囲にありません」 と言うエラーだと思います。 Sub test() Dim MyArray(7) As Integer MyArray(8) = 234 '<-ここでエラーになる End Sub こんなプログラムを実行した時のエラーで、ヘルプを表示した場合の表示の中に時々出てくる英文(プログラム)が一致してます。 基本的には配列の添え字がおかしいか、Sheets("sheet1").Cells(1, 1)...とかで"Sheet1"が無い場合とかの、()の中の値が不正な場合だと思います。 エラーになる行を見て、()の中の値をチェックしてみてはどうでしょうか?

3895010
質問者

お礼

回答をありがとうございます! ()内の値が不正なのが、わかりました。 ?や空白が多いのは、そのせいだと思います。 二つ質問があります。 (1)今、中国語版OSしか無く、中国語のエクセルで作動させる方法はありますか? (2)日本語OSを使う機会がある時にマクロを全部コピーし、中国語版OSにペーストすれば、マクロは作動しますか? すみません。素人な質問ですが、よろしくお願いいたします。