次の方法で共有

簡単なVBAを実行しただけなのにEXCEL2013が終了時に異常を起こす

Anonymous
2015-03-16T12:19:24+00:00

Win7Pro(64), EXCEL2013(32)で****症状を見付けました。

以下のVBAの関数 「EXCELが終了時に異常を起こす」 を実行すると、

EXCELを終了時に「Microsoft Excelは動作を停止しました」と出るのです。

ただし、Sheet1に特定の文字列が入っている場合だけに起こるという非常に****症状です。

私のパソコンだけの症状かもしれませんが

Win7Pro(64), EXCEL2013(32)

Win8.1(64), EXCEL2013(64)

で再現しました。

Sub テキスト取得()

    Dim obj As Object

    Set obj = Application.Cells(1, 1).Characters(1, 1)

    Dim text As String

    text = obj.text

End Sub

Sub テキスト設定()

    With Application

        .Cells(1, 1).Characters(1).text = "亜亜亜亜亜亜グ"

        .Cells(2, 1).Characters(1).text = "亜"

    End With

End Sub

Sub EXCELが終了時に異常を起こす()

    Call テキスト取得

    Call テキスト設定

End Sub

以下、再現手順です。

Book1を新規に開く

A1セルに

亜亜亜亜亜亜グ

A2セルに

と入れます。

ただし、この文字列をコピペして入力するとフリガナが入りませんので、キーボードを手で打って入力します。

入力したらこの二つのセルを選択してフリガナが入っていることを確認するためにフリガナを表示させてみます。

そうすると、こんな感じになりますよね。末尾の「グ」は全角です。

それでVBAの画面を開いてThis Workbookに上記のVBAを貼り付けて Book1.xlsm として保存します。

一旦EXCELを終了して、Book1.xlsmをダブルクリックで開きます。それでVBAの画面で関数 「EXCELが終了時に異常を起こす」 を実行します。

VBAの画面を閉じます。EXCELを右上の[x]ボタンで閉じます。

そうすると「Microsoft Excelは動作を停止しました」と出るのです。

VBAの関数では、A1のセルの文字を読み取ったり、あるいは、A1のセルに文字列を代入するだけの簡単なものです。

関数の実行でA1セルの中身の文字列の末尾の文字が半角カタカナに変わっているだけです。

もし他の方のパソコンでも再現するようでしたらEXCEL2013が****のではないかと思います。

ちなみに

Win8.1(64)EXCEL2013(64)でも再現します。それと、この環境では、A1セルに

亜亜亜亜亜亜グ

を入力して[ENTER]を押した瞬間にEXCELが数分間応答なしになりました。その後、正常に戻りました。それでVBAを実行したら上記問題も再現しました。

なお文字列の「亜」という漢字には深い理由はなく、当初はもっと別の意味のある文字列でした。そういうデータがたくさん入っているSheetを扱っていて、

それで上記のような感じの処理をして、セルの文字列を取得、設定していて本件のような症状に気付きました。

それでデータを削って行くと同時に、文字列も単純なものでテストしているうちに、上記のような例になっただけです。

この例ではEXCEL終了時に異常を起こしますが、わたしの本来のVBAの処理では、EXCEL実行途中で異常終了してしまうので困っています。

みなさんのパソコンでも再現するでしょうか?

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

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

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

7 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2015-03-24T03:19:41+00:00

    ​。こびりん さん、こんにちは。

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

    今回書き込んでいただいた方法を手元で試してみましたが、こちらも同じで症状が再現されました。

    ※ Windows8.1 + Excel 2013 32 ビット (15.0.4701.1002) の環境 2 台の PC で確認しました。

    問題の解析というご希望ではあるのですが、こちらのフォーラムは情報共有の場として運営させてもらっているフォーラムであり、開発の担当者の方と直接連携を取るということは行ってはおりません。。

    何か情報などがあれば共有をさせていただくことができるのですが、ご紹介できる回避策や情報が現在は見つからないという状況です。

    お役に立てずすみません。。

    もしこの現象について、有力な回避策や情報をお持ちの方がいらっしゃいましたら情報の書き込みをお願いいたします。

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

    1 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません
  2. Anonymous
    2015-03-18T11:50:57+00:00

    Book1.xlsm を保存する時にSheet1を全選択しておくと問題が再現しやすいです。

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

    0 件のコメント コメントはありません
  3. Anonymous
    2015-03-17T10:53:33+00:00

    大沢様

    再現テストありがとうございました。

    大沢様の環境でも再現したと言う事ですので、私の勘違いや、私のパソコン固有の問題などではないと言う事が分り、安心しました。

    VBA フォーラムで質問してみます。

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

    0 件のコメント コメントはありません
  4. Anonymous
    2015-03-17T08:15:36+00:00

    ​こびりん さん、こんにちは。

    マイクロソフト コミュニティをご利用いただき、ありがとうございます。

    Excel 2013 で、 VBA を実行させると終了時に 「動作を停止しました」 のエラーが発生するということなのですね。

    書いていただいた手順を参考に手元の Excel 2013 で試した結果、こちらでもエラーが発生する現象が再現されました。

    ※ Windows 8.1 + Excel 2013 32 ビット (バージョン 15.0.4693.1002) で試しました。

    この動作について情報を調べてみましたが、該当する情報は見つからず、この動作になる原因は解らなかったです。

    確認結果しかお伝えすることができなくてすみません。。

    回避策などの情報をお探しであれば、念のため VBA のコードに問題がないかという点も確認してみるとよいと思うので、 VBA フォーラムにも投稿をしてみて情報を集めてみてはいかがでしょう。

    Visual Basic for Application(VBA)

    よろしければ上記フォーラムのご利用も検討してみてくださいね。

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

    0 件のコメント コメントはありません
  5. Anonymous
    2015-03-16T13:17:21+00:00

    文字の入力の仕方が結果に関係するのかどうかわかりませんが、私の場合は、

    A1セル選択

    「あ」を入れて変換し「亜」でENTERで確定

    その「亜」をマウスで選択しCTRL+C でコピー

    CTRL+V を6回実行し「亜亜亜亜亜亜」

    最後に「ぐ」を入力してF7キー押して全角カタカナの「グ」

    これで

    「亜亜亜亜亜亜グ」

    を入力完了。

    A2セル選択し

    「あ」を入れて変換し「亜」でENTERで確定

    こういうふうに入力しました。

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

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