質問
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のプロパティ(互換性)で「互換モードでこのプログラムを実行する」チェックボックスをオフにして起動し直したところ、正常に;働することができました。
どうもありがとうございました。