パソコン仕事5倍塾
35,000人を指導した東大卒・元日本IBM社内講師が直伝
MENU
Matsumotoさんの投稿
(投稿ID: 3944)
小川 慶一さんのコメント
(コメントID: 5497)
牧野千秋さんのコメント
(コメントID: 5994) 添付ファイルのダウンロード権限がありません
(コメントID: 6003)
(コメントID: 6004)
(コメントID: 6005)
Captcha:
たった1ヶ月で人生が劇的に変わりました
佐藤信さん
役員クラスの方から高い評価を受けるようになりました。
佐賀県 - 岩本徹さん
今までまったく知らなかったショートカットキーを使いまくっています。
東京都 - 鷹觜慶さん
年齢60才間近、営業で外回りの時間が多い私でも退社時間が1-2時間程度早くなりました。
東京都 - 宗内隆明さん
受講前もすでにパソコン得意でしたが、そんな私でも受講して本当に良かったと思えた講座です。
東京都 - 佐伯とも子さん
ここまで包括的に仕事に役立つ深い学びを受けれた講座は初めてでした
東京都 - 飯田倫子さん
2025年04月01日 08:46
2025年03月24日 09:29
2025年03月18日 07:04
2025年03月16日 17:25
2025年03月13日 10:11
2025年03月28日 09:25
2025年03月25日 08:54
2025年03月24日 10:58
2022年02月24日 10:59
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
2022年02月02日 00:00
2022年02月02日 03:00
2022年02月02日 06:00
2022年02月02日 09:00
2022年02月02日 12:00
2025年04月04日 15:45
2025年03月27日 13:30
2025年03月24日 17:15
2025年02月28日 09:44
2024年12月19日 11:30
2025年02月04日 08:51
2025年02月03日 12:58
2024年11月27日 11:48
2024年11月25日 12:07
2024年11月17日 09:51
2025年03月26日 22:33
2025年03月26日 22:12
2025年03月24日 22:28
2025年03月19日 20:10
2025年03月18日 20:52
2025年03月18日 09:07
2025年03月18日 09:06
2025年03月15日 13:23
2025年02月26日 16:37
2025年02月24日 15:44
2025年04月02日 21:01
2025年04月02日 20:47
2025年04月02日 20:37
2025年04月01日 22:03
2025年04月01日 21:27
2025年03月18日 09:10
2025年03月18日 09:09
2025年03月08日 07:15
Matsumotoさんの投稿
(投稿ID: 3944)
でも小人ちゃんの配慮で文字列以外も文字列とみなして結合してくれる。
結合結果(文字列or数字のどちらとみなされるか)は、結局そのセルの書式設定に依存すると理解しました。
小川 慶一さんのコメント
(コメントID: 5497)
[x] 結合演算子は本来文字列を結合するもの。
↑
OKです。
[y] でも小人ちゃんの配慮で文字列以外も文字列とみなして結合してくれる。
↑
OKです。
[z] 結合結果(文字列or数字のどちらとみなされるか)は、結局そのセルの書式設定に依存すると理解しました。
↑
NGです。
以下の[a]と[b]を同一視されているのではないかと。
[a] 結合結果(すなわち、&で結合した直後にできあがったもの)は、文字列です。(まさに、上記[y]でゲストさんがおっしゃったとおりです)
[b] セルに値を投入したとき、そのセルに最終的に入る値は、セルの書式設定に依存する
たとえば、以下の式で変数 x に投入されるのは、 "31" という、長さ2文字の文字列です。
(「31」という数字ではなく、「"31"」という文字列)
[info]Sub hoge()
Dim x
x = 3 & 1 '[a] 変数 x には、文字列の "31" が入る
End Sub[/info]
さて、セルA1-A4のそれぞれが、以下の表示形式(書式)になっているとしましょう。
A1: 標準
A2: 数値
A3: 文字列
A4: 日付
(上記のそれぞれは、エクセルのダイアログ「セルの書式設定」のタブ「表示形式」から設定できます)
そのとき、以下のマクロを実行するとします。
さて、どうなるか。
[info]Sub fuga()
Dim x
x = 3 & 1 '[a] 変数 x には、文字列の "31" が入る
Range("A1").Value = x '[b-1] 数字の 31 が入る(書式が「標準」だから)
Range("A2").Value = x '[b-2] 数字の 31 が入る(書式が「数値」だから)
Range("A3").Value = x '[b-3] 文字列 "31" が入る(書式が「文字列」だから)
Range("A4").Value = x '[b-4] 日付の 1900/1/31 が入る(書式が「日付」だから)
End Sub[/info]
...。
ということです。
...という説明で、どうでしょう?
サンプルプログラム内のコメント[a], [b-1]~[b-4] は、それぞれ、サンプルプログラムを紹介する前の解説[a], [b]と対応しています。
ご確認ください。
というか、できれば、自分で手書きで同じプログラムを書いて、実行されてみると良いでしょう。
関連の解説を以下の2つの動画でしています。
上記[a], [b]に気をつけて見直してみてください。
○基礎講座第2章4 - セルの書式と、値の投入(この動画のひとつ前のものです)
https://forum.pc5bai.com/lesson/page/112
○基礎講座第2章5 - 文字列の結合(この動画です)
https://forum.pc5bai.com/lesson/page/113
まずは、以上のとおりです。
この説明で十分ご理解いただけるか?五分五分かな、と思っています。ので、フィードバックください (^^)/~
> 結合演算子は本来文字列を結合するもの。
> でも小人ちゃんの配慮で文字列以外も文字列とみなして結合してくれる。
>
> 結合結果(文字列or数字のどちらとみなされるか)は、結局そのセルの書式設定に依存すると理解しました。
牧野千秋さんのコメント
(コメントID: 5994) 添付ファイルのダウンロード権限がありません
やりたいことは、「基礎データ」シートのA列とB列を連想配列に重複せずに格納したいというものです。
小川 慶一さんのコメント
(コメントID: 6003)
以下のとおりにすればとりあえずご希望に近いものにはなるかと思います。
dic.Item(KEY) = dic.Item(KEY) + 1 はコメントアウト。
Sheets("出力").Range("B1").Offset(i).Value = VKEYS(i)
は、右辺を以下のとおりに修正。
dic.Item(VKEYS(i))
> ファイルつけるの忘れていました。
> やりたいことは、「基礎データ」シートのA列とB列を連想配列に重複せずに格納したいというものです。
牧野千秋さんのコメント
(コメントID: 6004)
1つめ
名前だから文字列で""でくくっておかなければならないのですね
2つめ
おお、できました!
実は重複しないリストを作るため、別シートにピボットテーブルを作ってリフレッシュしていました(←けっこうおもしろい発想でしょう?)。
ありがとうございました。
小川 慶一さんのコメント
(コメントID: 6005)
> 1つめ
> 名前だから文字列で""でくくっておかなければならないのですね
「参照するクラスの名称を文字列型で指定する」ということです。
> 2つめ
こららも参考になるかと。
○10秒でできる!エクセルデータの「重複の削除」
https://forum.pc5bai.com/lesson/page/1280
> 小川先生
> 1つめ
> 名前だから文字列で""でくくっておかなければならないのですね
>
> 2つめ
> おお、できました!
> 実は重複しないリストを作るため、別シートにピボットテーブルを作ってリフレッシュしていました(←けっこうおもしろい発想でしょう?)。
> ありがとうございました。