次の方法で共有


EXCEL VBA 特定PCでのみStrConvがエラーとなる問題

質問

2017年11月17日金曜日 5:38

EXCEL VBAのコードのStrConvコマンドが、ある特定のPCで;働せず困っております。
状況は下記となっております。

【EXCEL環境】
Microsoft Office Personal 2013 バージョン15.0.4981.1001
Microsoft Excel 2013(15.0.4981.1000) MSO(15.0.4981.1000) 32ビット (Microsoft Office Personal 2013の一部)

【Windows環境】
Windows 7 Professional
Service Pack 1
64ビットオペレーティングシステム

【VBAコード抜粋】
フォーム上にあるtxtSearchKanaというテキストボックス上に書かれた文字列を取引先というワークシートの20列目からサーチするためのbtnSearchKanaのクリックイベントのコードです。
最初に、txtSearchKana上に入力された文字がカタカナならばそのまな、ひらがなならばカタカナに変換した文字をtxtSearchというString変数に入れています。

(以下コード抜粋)
Private Sub btnSearchKana_Click()
    Dim i As Integer
    Dim j As Integer
    Dim txtSearch As String
    Dim lastRow As Integer
    Dim msg As String
    Dim searchData()
    Dim listSelect
    Dim searchCode() As String
    
    If txtSearchKana = StrConv(txtSearchKana, vbHiragana) Then
        txtSearch = StrConv(txtSearchKana, vbKatakana)
    ElseIf txtSearchKana = StrConv(txtSearchKana, vbKatakana) Then
        txtSearch = txtSearchKana
    End If
    
    With Worksheets("取引先")
        lastRow = .Cells(Rows.Count, 1).End(xlUp).Row
        j = 0
        For i = 2 To lastRow
            If .Cells(i, 20) Like "*" & txtSearch & "*" Or StrConv(.Cells(i, 20), vbWide) Like "*" & txtSearch & "*" Then
                j = j ; 1
                ReDim Preserve searchData(j)
                searchData(j) = i

            End If
        Next i
    End With
    
    If j = 0 Then

【エラー発生時のメッセージ】
実行時エラー '5':
プロシジャーの呼び出し、または引数が不正です。

【問題の発生するコード】
if txtSearchKana = StrConv(gxgSearchKana, vbHiragana) Then
(上記【VBAコード抜粋】の最初のDimの宣言の直下です。)

【ためしたこと】
このエラーのでるPC上でイミディエイトウィンドウで、
? StrConv("なまえ", vbHiragana)
と入力し実行しても同じエラーとなります。
他の正しく動くPCでは、正しく「なまえ」と結果が出てきます。

【質問項目】
なぜ、該当のPCでのみ問題が発生するのか(StrConvが出来ないのか)が分かっておりません。
WindowsのバージョンもOffice, Excelのバージョンも、問題が発生するPCと発生しないPCで同じものを使用しています。
なにか情報があったら教えて頂けませんでしょうか。
また、デバッグにつき、なにか有用な方法がありましたら、ご教示願えませんでしょうか。

どうぞよろしくお願いいたします。

すべての返信 (4)

2017年11月17日金曜日 6:23 ✅回答済み | 2 票

同じ現象かどうかはわかりませんが、私の環境(Windows 10 x64 1607 ビルド 14393.1884, Excel 2016 1710 ビルド 8625.2121)でも同様のエラーが発生しました。そこでコントロールパネルの「時計、言語、および地域」→「地域」選択して、「地域」ダイアログの「形式」タブの「形式」を確認したところ「英語(米国)」となっておりました(過去に自分で変えてしまったのだと思います)。ここを「日本語(日本)」と変更したところ、StrConv 関数は「実行時エラー '5':」とならず正常に実行できるようになりました。参考になりますでしょうか?

参考サイト: http://www.excel.studio-kazu.jp/kw/20131102091107.html


2017年11月17日金曜日 12:00 ✅回答済み | 1 票

エクセルを互換モードで起動しているとか?


2017年11月17日金曜日 9:43

kenjinote様、
早速の情報をどうもありがとうございました。
動くPCと動かないPCで地域ダイアログの形式を確認いたしましたが、両方とも「日本語(日本)」でした。
確かに、カタカナやひらがななどの言語の認識がどこかで異なっていると、StrConvがうまくコンバージョンできないというのはあるのだと思います。他にも見るべき設定があるのかもしれません。調べてみます。

他にデバッグ情報等ございましたら、是非ご教示願いたく、どうぞ宜しくお願いいたします。


2017年11月18日土曜日 2:23

minmin312様、
情報をどうもありがとうございます。
調査したところ、互換モードとなっておりました。excel.exeのプロパティ(互換性)で「互換モードでこのプログラムを実行する」チェックボックスをオフにして起動し直したところ、正常に;働することができました。
どうもありがとうございました。