
いつもお世話になります
今、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
No.1ベストアンサー
- 回答日時:
こんばんは。
直接の回答ではないかも知れないが、表示上は?になってしまいますが、
ListViewのIndexを取って、それをシートのインデックスで指定では
ダメでしょうか?
Private Sub ListView1_Click()
Sheets(ListView1.SelectedItem.Index).Select
End Sub
いつもお世話様です
早速のご回答に感謝します
ご指摘の通りListViewでは?のなってしまいますが
エラーを出さずにシートを選択できました
これで行きたいと思います
ありがとうございました
これからもよろしくお願い申し上げます
No.3
- 回答日時:
こんばんは
環境依存文字って文字コードで取得する必要があったような記憶が、、
?は表示上のもの、、
で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)
で上手くいかないかな?
いつもお世話様です
早速のご回答に感謝します
私のやり方が悪いのかもしれません
ちょっとうまく行かなかったです
申し訳ございません
是非、またご教授願えれば幸いです
ありがとうございました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ListView 項目の選択/選択解除について
Visual Basic(VBA)
-
VBAにて読み込みが出来ない環境依存文字 ㉖ の文字コードを教えて下さい。
Excel(エクセル)
-
ListViewで文字化けしてしまいます。
Visual Basic(VBA)
-
-
4
VBAでListViewのフォントを変更する方法
Visual Basic(VBA)
-
5
vba listviewにおけるtextのAlingmentを中央にしたい
Excel(エクセル)
-
6
ListViewの複数選択について
Visual Basic(VBA)
-
7
Excel VBA ListViewサブアイテムの文字色
その他(プログラミング・Web制作)
-
8
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
9
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
10
ListViewの行選択について
Visual Basic(VBA)
-
11
VBA ユーザーフォームのChangeイベントを停止したい
Access(アクセス)
-
12
VBAのリストボックスでの文字化け
その他(プログラミング・Web制作)
-
13
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
14
vba Listviewでのチェックボックスのイベントを教えてください
Excel(エクセル)
-
15
vba ListViewの選択色について教えてください
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー1004「Select メソ...
-
【ExcelVBA】全シートのセルの...
-
excelのマクロで該当処理できな...
-
Excel VBA リンク先をシート...
-
特定の文字を含むシートだけマ...
-
Excelマクロのエラーを解決した...
-
XL:BeforeDoubleClickが動かない
-
Access エクセルシート名変更
-
エクセルVBA ListBoxの並び...
-
ユーザーフォームに入力したデ...
-
Worksheet_Changeの内容を標準...
-
セルの値によって、シート見出...
-
【VBA】全ての複数シートから指...
-
EXCEL VBAで複数シートから該当...
-
ワークシートを追加したときの...
-
【VBA】シート名に特定文字が入...
-
PerlでExcelのワークシートを同...
-
エクセルVBA Ifでシート名が合...
-
エクセルで通し番号を入れてチ...
-
エクセルのマクロでアクティブ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
特定の文字を含むシートだけマ...
-
実行時エラー'1004': WorkSheet...
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
エクセルVBA Ifでシート名が合...
-
実行時エラー1004「Select メソ...
-
VBA 存在しないシートを選...
-
エクセルで通し番号を入れてチ...
-
VBA 検索して一致したセル...
-
XL:BeforeDoubleClickが動かない
-
VBA 指定した回数分、別シート...
-
VBAマクロでシートコピーした新...
-
シートが保護されている状態で...
-
ブック名、シート名を他のモジ...
-
【VBA】全ての複数シートから指...
-
別のシートから値を取得するとき
-
ExcelのVBAのマクロで他のシー...
-
Excel チェックボックスにチェ...
おすすめ情報