電子書籍の厳選無料作品が豊富!

ワークシートには書けます。(コピペですが)
=CHAR(254)で表示もされます。
数式にも文字列で使えます。
でも、Visual Basic Editor ではコピペすると?に化けてしまいます。
VBAコードの中で使用したいのですがどうすればよいのでしょうか?

「Visual Basic Editorで」の質問画像

A 回答 (2件)

こんにちは。



  Cells(2, 3) = ChrW(254)
  Cells(2, 4) = ChrW(9745)
とか
  Cells(2, 3) = ChrW(&HFE)
  Cells(2, 4) = ChrW(&H2611)
みたいにも書けますね。

因みに、文字コードを採るには
  MsgBox AscW(Cells(2, 3))
  MsgBox AscW(Cells(2, 4))
とか
  MsgBox "&H" & Hex(AscW(Cells(2, 3)))
  MsgBox "&H" & Hex(AscW(Cells(2, 4)))
とか。

一応、Chr()関数やAsc()関数のヘルプには目を通しておいてください。
    • good
    • 0
この回答へのお礼

いつもお世話様です。
ChrW 関数は初めて見ました。
おかげさまで以下のコードが出来ました。
期待通りの動きをしてくれました。
ありがとうございました!!

Sub test002()
  Dim Rng As Range, c As Range
  Dim firstAddress As String, x As String
  x = ChrW(254)
  Set Rng = ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas, 23)
  If Rng Is Nothing Then Exit Sub
  With Rng
    Set c = .Find(x, LookIn:=xlFormulas, LookAt:=xlPart)
    If Not c Is Nothing Then
      firstAddress = c.Address
      Do
        Debug.Print c.Address & " : " & c.Value & " : " & c.Formula
        c.Font.Name = "Wingdings"
        Set c = .FindNext(c)
        If c Is Nothing Then Exit Do
      Loop Until c.Address = firstAddress
    End If
  End With
End Sub

お礼日時:2013/10/05 23:01

しばらくVBAをやってないので参考程度ですがEditor上ではシステム


コード内の文字しか表示出来ず、エクセル上はUnicodeで表示みたい
なので変換の必要があるみたいですね。

VBAからエクセルに表示させるサンプルです。

Sub Macro1()
Range("A1").Select
ActiveCell.FormulaR1C1 = StrConv(Chr(&HDE), vbFromUnicode)
  ' 254→16進数 DE
End Sub

StrConv 関数を参照
http://www.red.oit-net.jp/tatsuya/vb/string.htm# …
    • good
    • 0
この回答へのお礼

有難うございます。
実際にやりたいことはVBAでワークシート上の文字を検索したいのです。
ためしに
Sub test001()
Dim x
x = Chr(&HDE)
ActiveSheet.UsedRange.Find(x, LookIn:=xlValues, LookAt:=xlPart).Select
End Sub
とやってみましたが、エラーになりました。

お礼日時:2013/10/05 22:44

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