次の方法で共有

マクロ実行で、実行時エラーが表示されてしまう。

Anonymous
2010-06-25T02:51:25+00:00

マクロの記録で、記録する。コードは下記。

Sub Macro1()

'

' Macro1 Macro

'

'

    Range("A1").Select

    ActiveCell.FormulaR1C1 = "ABCD"

    Range("A2").Select

End Sub

マクロを実行させると実行時エラーが表示されてしまう。表示内容な下記。

実行時エラー '-2147319784 (80028018)': 'Select' メソッドは失敗しました: 'Range' オブジェクト

イミディエイト上で、”Range("A1").Select” の実行は可能。

上記現象は、特定のファイル(***.xlsm)でのみ発生しており、

新規で作成したファイルでは問題なく動作しております。

その他、問題が発生するファイルと、問題ないファイルでの相違点は、

下記が相違しております。

DieseArbeitsmappe (NGの方)

ThisWorkbook (OKの方)

問題が発生するファイルに何かしらの対処方を適用して解決したいと

思っております。

よろしくお願いいたします。

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2010-06-30T12:19:22+00:00

VBA エディタが Unicode に対応していない…という話。

今、お使いになっている日本語対応版の Excel の VBA エディタに対して

ドイツ語を入力(コピーでも可)しようとしても、正しく表示されないはずです。

中国語でも、スペイン語でもイタリア語でも同じはず…。

文字化けには、フォントによって、文字が化けているように見える字も

あれば、表示できない(目に見えない)字もありますので、お使いになっている

Excel 以外で作成されたファイルをお使いになるときは、要注意です。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2010-06-25T11:21:00+00:00

・ エラーが起こるファイルは “DieseArbeitsmappe”

・ エラーが起こらないファイルは “ThisWorkbook”

これは、<おそらく>、[開発] タブから Microsoft Visual Basic for Applications を開いた際、

プロパティの上の、VBA プロジェクトのツリーの中に表示されるオブジェクトのことだと推測しています。

つまり、エラーが起こらないファイルでは、

VBA プロジェクト

┗Microsoft Excel Objects

┣Sheet1(Sheet1)

┣Sheet2(Sheet2)

┣Sheet3(Sheet3)

┗ThisWorkbook

と表示されているが、エラーが起こるファイルでは

VBA プロジェクト

┗Microsoft Excel Objects

┣Sheet1(Sheet1)

┣Sheet2(Sheet2)

┣Sheet3(Sheet3)

┗DieseArbeitsmappe

と表示されている…と、こういう話ではないかと思います。

…なので、私からのコメントとしては、


日本語対応版 Excel 上では、ThisWorkbook がオブジェクトに存在しないとマクロが実行できない


ということにさせていただこうかと思いますが、いかがでしょうか?

ちなみに、VBA エディタは、Unicode 非対応なので、ドイツ語対応版の Excel で作成されたファイルを

日本語対応版のExcel 上で実行しようとしても、文字コードの関係で実行に失敗する可能性もあるような

気がします。

イミディエイトウィンドウから実行できたのは、日本語対応版 Excel が正しく認識できる文字コードを

使って入力/実行したから…ではないかと推測しています。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2010-06-25T07:24:43+00:00

optcom さん、こんにちは。

Answers をご利用いただきましてありがとうございます。

Excel 2007 マクロを実行した際に、以下のエラーが発生するということですね。

実行時エラー '-2147319784 (80028018)': 'Select' メソッドは失敗しました: 'Range' オブジェクト

特定のファイルのみでこの現象が起こり、下記の相違点があるとのことですが、

・ エラーが起こるファイルは “DieseArbeitsmappe”

・ エラーが起こらないファイルは “ThisWorkbook”

これは、ファイル名でしょうか?

単純にファイル名が違うだけで、実行エラーが起きることはないと思いますし、

実際に私の手元で Office2007 で試しに記載いただいたコードを実行しましたが、特に問題はありませんでした。

エラーが起こるファイルの「相違点」は、ドイツ語ですが、

ドイツ語環境で作成したファイルが日本語もしくは英語での環境での実行がうまく行かないということなのでしょうか。

特定のファイルでエラーが起こる際は、単純な回避策としては

新規作成したシートにデータをコピーすることですが。。。

optcom さんのご使用中の環境や状況について具体的に記載いただくことで

情報をお持ちの他の皆さんから適切なアドバイスが受けられるかもしれませんね。

以下のような情報があれば良いと思います。

・問題が発生しているシートをどうしても使用されたいということであれば、その理由

・実際には、エラーの起こっているExcel ファイルに別のデータが入っているのであれば、どのようなデータが入っているのか

他のマクロがあれば、そのVBAコード全文を記載(詳細な記載があれば、手元で確認することもできます)

・エラーが起こっているファイルはどのような環境で作成したものか(言語環境、OSのバージョン、Officeのバージョン)

・他のマクロを実行してもエラーが発生するか


田中 美紀– Microsoft Support

この回答は役に立ちましたか?

0 件のコメント コメントはありません

3 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2010-06-28T00:52:05+00:00

    ぱろむぽろむ様

    ご返信ありがとうございます。

    > これは、<おそらく>、[開発] タブから Microsoft Visual Basic for Applications を開いた際、

    > プロパティの上の、VBA プロジェクトのツリーの中に表示されるオブジェクトのことだと推測しています。

    ご推測の通りでございます。説明が悪く、申し訳ありません。

    > 日本語対応版 Excel 上では、ThisWorkbook がオブジェクトに存在しないとマクロが実行できない

    > ということにさせていただこうかと思いますが、いかがでしょうか?

    了解致しました。

    そのような仕組みになっているということで理解致しました。

    > ちなみに、VBA エディタは、Unicode 非対応なので、ドイツ語対応版の Excel で作成されたファイルを

    > 日本語対応版のExcel 上で実行しようとしても、文字コードの関係で実行に失敗する可能性もあるような

    > 気がします。

    今のところ、オブジェクト名しか違いが判らないのですが、

    見えないところで、文字化けが発生しているということでしょうか?

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2010-06-28T00:51:17+00:00

    田中様

    ご返信ありがとうございます。

    > ・ エラーが起こるファイルは “DieseArbeitsmappe”

    > ・ エラーが起こらないファイルは “ThisWorkbook”

    > これは、ファイル名でしょうか?

    私の情報不足で申し訳ありません。

    こちらについては、下記でぱろむぽろむ様が返信されている内容でございます。

    > 特定のファイルでエラーが起こる際は、単純な回避策としては

    > 新規作成したシートにデータをコピーすることですが。。。

    はい、ご提案頂きました回避策で回避は出来ているのですが、

    なぜエラーになるのか納得が行かずこちらに質問させていただきました。

    > ・問題が発生しているシートをどうしても使用されたいということであれば、その理由

    > ・実際には、エラーの起こっているExcel ファイルに別のデータが入っているのであれば、どのようなデータが入っているのか

    > 他のマクロがあれば、そのVBAコード全文を記載(詳細な記載があれば、手元で確認することもできます)

    > ・エラーが起こっているファイルはどのような環境で作成したものか(言語環境、OSのバージョン、 Officeのバージョン)

    > ・他のマクロを実行してもエラーが発生するか

    ご指摘、ありがとうございます、以後、気を付けます。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません