Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


48272 / 76736 ←次へ | 前へ→

【33400】Re:並び替えについて
発言  ichinose  - 06/1/10(火) 19:00 -

引用なし
パスワード
   ▼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をつけて連番を作成して、その連番を頼りにしてソートをかけていますが
>もっと単純な方法はあるのでしょうか。

これは、私もこのようにしますけどね!!

1 hits

【33289】並び替えについて 06/1/7(土) 15:02 質問
【33295】Re:並び替えについて かみちゃん 06/1/7(土) 18:03 発言
【33296】Re:並び替えについて ichinose 06/1/7(土) 18:32 発言
【33373】Re:並び替えについて Hirok 06/1/9(月) 21:36 質問
【33374】Re:並び替えについて かみちゃん 06/1/9(月) 21:50 発言
【33375】Re:並び替えについて ichinose 06/1/9(月) 22:16 発言
【33377】Re:並び替えについて Hirok 06/1/10(火) 10:29 お礼
【33400】Re:並び替えについて ichinose 06/1/10(火) 19:00 発言
【33403】Re:並び替えについて Hirok 06/1/10(火) 21:37 お礼
【33378】Re:並び替えについて 06/1/10(火) 11:26 お礼
【44311】Re:並び替えについて 06/11/12(日) 22:42 質問
【44312】Re:並び替えについて ichinose 06/11/13(月) 7:29 発言
【44314】Re:並び替えについて 06/11/13(月) 9:41 質問
【44349】Re:並び替えについて ichinose 06/11/13(月) 18:23 発言
【44353】Re:並び替えについて 06/11/13(月) 20:23 お礼

48272 / 76736 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free