|
▼Hirok さん:
こんばんは。
>
>後一点教えていただきたいのですが
>With rng.Offset(0, col)
> .Formula = "=a6&"""""
>End With
>ここの構文で、"=a6""""の意味合いを教えていただけませんでしょうか?
>「"」の使い方?が全く分かりません。が、検索で調べられますでしょうか?
まず、新規ブックの標準モジュールに
'================================
Sub test()
Range("a1").Value = 123
With Range("b1")
.Formula = "=a1"
MsgBox TypeName(.Value)
.Formula = "=a1&"""""
MsgBox TypeName(.Value)
End With
End Sub
これを実行してみて下さい。
最初に Double と表示され、次いで String と表示されますよね?
セルB1に
「=a1&""」という数式を指定すると、
「=a1」という数式では数値だったセルB1が
文字列に型変換されるということです。
本題では、文字列のソートをさせるためにこのように細工を施したのです。
で、
.Formula = "=a1&"""""
これですが、"(ダブルコーテーション)は、VBAでは、
文字列を表わすのにその開始位置と終了位置に付けますよね?
Dim a as string
a="文字列"
というように
では、この「"」を文字列だと認識させる開始位置と終了位置のための「"」ではなく、
文字として「"」を指定する場合は、「""」と指定します。
これは、文法です。覚え事です。
Dim a as string
a="文字列の""です"
というように・・・。
よって、
.Formula = "=a1&"""""
は、「""""」は、文字として「""」が指定されたことになります。
つまり、数式として =a1&"" が指定された事になるのです。
>
>また別件ですが、ソートを実行してしまった後、時には元に戻したい(元の配列)時がありますが、そのときは
>項目行にNoをつけて連番を作成して、その連番を頼りにしてソートをかけていますが
>もっと単純な方法はあるのでしょうか。
これは、私もこのようにしますけどね!!
|
|