Excel VBA質問箱 IV

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

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


6894 / 76732 ←次へ | 前へ→

【75434】Re:以前作って頂いた物の改変(複雑です)
発言  kanabun  - 14/3/24(月) 17:38 -

引用なし
パスワード
   ▼初心者M さん:

>質問の趣旨から外れてしまうのですが、問題があるとすれば、運用する私の知識が全然追いついていないという1点です。
>kanabunさんの様に、知識と技術のある親切な方にいつでも頼れるわけではないので、なんとか自分でも「こういうコードを使えば、こういうことができる」という知識を身につけたいのですが、どのような部分から手を付ければよいか、ご参考までにお教え頂けないでしょうか。例えば、「数値が入っているか」を判別するためにWorksheetFunctionを使うなど、私では到底思いつきません。

これはぼくからの非常に個人的なお願いなのですが、
ぜひ習得してほしいのは Dictionaryオブジェクトの利用法です。
こちらはDictionaryの利便性、高速性にどっぷりつかっているので、
AdvancedFilter や ピボットテーブルの分野まで侵入して
Dictionaryを使ったコードを書くことがあります。
質問者のかたが Dictionaryをまるで知らないと、そのコードは
タダで作ってもらった変更の利かない道具ですが、すこしでも
Dictionaryを使ったコードの書き方をみていると、ははぁ、こ
こで、こういうふうにDictionaryを使うのだな。では、それを
まねて、こういう目的のためにDictionaryを使ってやろう。
という気になってきますので、かいとうする側としては非常に
提示しがいのある回答になります。
Dictionaryを一から説明せよ、と言われても、それはなかなか
難しいです。
具体例とともに、少しずつ慣れていくのが得策かと思います。
ぼくがそうでしたから。

●Dictionaryオブジェクトを使うと重複のあるリストから、一意の
リストを取得することができます。

みかん        みかん
りんご        りんご
バナナ        バナナ
みかん    ==⇒ なし
なし         
バナナ        
みかん        


● Dictionaryオブジェクトを使うと(今回のように)キーの
出現回数をカウントすることもできます。

For Each key In リスト
   dic(key) = dic(key) + 1
Next
[F1].Resize(dic.Count, 2).Value = Application.Transpose( _
  Array(dic.Keys(), dic.Items())


● Dictionaryオブジェクトを使うと、集計作業ができます。
品名   売上
みかん  1000
りんご  1200
バナナ  1500
みかん  2000
なし   1000
バナナ  5000
みかん  2000

For Each 品名 In テーブル.列(1)
   dic(品名) = dic(品名) + 売上
Next
[F1].Resize(dic.Count, 2).Value = Application.Transpose( _
  Array(dic.Keys(), dic.Items())

参考サイト
ht tp://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_dictionary.html
ht tp://officetanaka.net/excel/vba/tips/tips80.htm
22 hits

【75379】以前作って頂いた物の改変(複雑です) 初心者M 14/3/18(火) 11:09 質問
【75380】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/18(火) 12:49 発言
【75381】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/18(火) 13:47 質問
【75382】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/18(火) 19:24 発言
【75383】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/18(火) 19:40 発言
【75384】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/19(水) 10:03 お礼
【75385】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/19(水) 11:00 発言
【75386】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/19(水) 11:26 質問
【75387】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/19(水) 13:59 発言
【75388】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/19(水) 14:35 お礼
【75389】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/19(水) 14:37 お礼
【75390】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/19(水) 15:59 発言
【75391】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/19(水) 16:11 発言
【75392】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/19(水) 17:24 お礼
【75393】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/19(水) 20:11 発言
【75394】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/20(木) 9:13 質問
【75395】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/20(木) 9:34 発言
【75396】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/20(木) 13:21 お礼
【75397】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/20(木) 14:17 発言
【75398】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/20(木) 14:45 発言
【75399】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/20(木) 14:52 発言
【75400】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/20(木) 15:19 発言
【75402】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/20(木) 17:38 発言
【75403】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/20(木) 17:56 発言
【75404】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/20(木) 19:08 発言
【75423】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/24(月) 9:23 質問
【75424】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/24(月) 10:22 質問
【75425】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/24(月) 10:33 発言
【75426】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/24(月) 10:40 発言
【75427】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/24(月) 10:54 発言
【75428】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/24(月) 11:10 お礼
【75429】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/24(月) 11:30 発言
【75430】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/24(月) 11:40 発言
【75431】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/24(月) 11:49 発言
【75432】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/24(月) 13:48 発言
【75433】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/24(月) 14:10 お礼
【75434】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/24(月) 17:38 発言
【75435】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/25(火) 9:46 お礼

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