プロが教えるわが家の防犯対策術!

いつもお世話になります

今、Listviewボックスを使ってシートを選択するプログラムで
シート名に環境依存文字が含まれていると?マークになり
選択するとエラーになってしまいます

いろいろ調べて
AscWやChrWを使ってみましたがうまく行きません
webからプログラムをコピーして下記のようなプログランで
検証してみましたがダメでした

何か良い方法がありましたら教えてください

Dim aaa As String
Private Sub UserForm_Initialize()

aaa = ActiveSheet.Name
For Each ws In Worksheets
Call isSJIS(ws.Name)  '...ws.nameは"B2中柱㉒"です
With ListView1.ListItems.Add
.Text = ws.Name
End With
Cells(11, 1) = ws.Name
Cells(12, 1) = aaa
Next ws
Cells(13, 1) = ListView1.ListItems(1).Text
End Sub

Sub isSJIS(ByVal argStr As String)
Dim sQuestion As String
Dim ccc As String
aaa = argStr
sQuestion = Chr(63) '?:文字リテラルでは誤解があるといけないので
Dim i As Long
For i = 1 To Len(argStr)
ccc = Mid(argStr, i, 1)
If ccc <> sQuestion And _
Asc(ccc) = Asc(sQuestion) Then
aaa = Replace(aaa, ccc, ChrW(AscW(ccc)))
End If
Next
End Sub

教えて!goo グレード

A 回答 (3件)

こんばんは。



直接の回答ではないかも知れないが、表示上は?になってしまいますが、
ListViewのIndexを取って、それをシートのインデックスで指定では
ダメでしょうか?

Private Sub ListView1_Click()
Sheets(ListView1.SelectedItem.Index).Select
End Sub
    • good
    • 0
この回答へのお礼

いつもお世話様です
早速のご回答に感謝します

ご指摘の通りListViewでは?のなってしまいますが
エラーを出さずにシートを選択できました
これで行きたいと思います
ありがとうございました
これからもよろしくお願い申し上げます

お礼日時:2022/01/22 14:00

こんばんは


環境依存文字って文字コードで取得する必要があったような記憶が、、
?は表示上のもの、、

でFunctionを作成すると

Function isSJIS(ByVal argStr As String) As String
Dim buf()
Dim strA As String
Dim i As Long
ReDim buf(Len(argStr) - 1)
For i = 1 To Len(argStr)
buf(i - 1) = Hex(AscW(Mid(argStr, i, 1)))
Next
For i = 0 To UBound(buf)
strA = strA & ChrW("&H" & buf(i))
Next
isSJIS = strA
End Function

変数名はいい加減です
これを該当の
Cells(12, 1) = isSJIS(aaa)
で上手くいかないかな?
    • good
    • 2
この回答へのお礼

いつもお世話様です
早速のご回答に感謝します

私のやり方が悪いのかもしれません
ちょっとうまく行かなかったです
申し訳ございません
是非、またご教授願えれば幸いです
ありがとうございました

お礼日時:2022/01/22 13:52

表示させるコントロールが対応しているのか?ってのも気になりますよね。


Wordでは使えるフォントもExcelではダメって場合もありますし。
    • good
    • 0
この回答へのお礼

いつもお世話様です
早速のご回答に感謝します

そうですね
ListViewはだめそうですが
3番目の回答でエラーは出ずに出来そうです
今回、ご回答ありがとうございました
またのご教授を楽しみにしています

お礼日時:2022/01/22 13:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング