Excel VBA質問箱 IV

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

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


55138 / 76732 ←次へ | 前へ→

【26373】Re:効率的なコードにするには…。
発言  かみちゃん E-MAIL  - 05/7/3(日) 14:36 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>得意先別、営業部門別、商品別に金額の集計をとりたいと思っています。
>得意先は、全部で4つあり、「得意先毎」の「営業部門別、商品別に金額の集計」をとりたいのです。

それであれば、ぜひ、ピボットテーブルを勉強されることをおすすめします。
ご存知でないならば、目からウロコだと思います。私も一番最初はそうでした。
さらに、もしかしたら、VBAを使わなくてもすむかもしれません。
面倒だったら、マクロの記録をしてしまえばいいわけですから。

>ピボットテーブルは全然試していませんでした。早速試してみますね!(といっても一から勉強なのですが…(^_^;))

それであれば、Webの検索で「ピボットテーブル Excel」などで検索すると、いろいろ出てきますが、以下のようなところは参考になるかもしれません。
http://kokoro.kir.jp/excel/pivottable.html
http://www.moug.net/skillup/fclm/fclm08-01.htm
http://www.atmarkit.co.jp/fwin2k/win2ktips/359pivot/pivot.html

こちらでは、ピボットテーブルでのコードができましたが、まずは、手作業による方法をマスターしていただいたほうがよろしいかと思いますので、コードを提示するのは、まだ控えておきます。
必要であれば、おっしゃってください。

>対象シート名を選択させる、というのは、具体的にどのようなかんじなのでしょう?ユーザーに選択させるようにする、ということでしょうか…?

そうです。ユーザーに選択させます。
たとえば、ユーザーフォームを用意して、コンボボックスを配置して、そのコンボボックスには、シート名の一覧をリスト化しておいて、そのリストの中から選択する。
簡単なものであれば、InputBox関数でシート名を入力させる。しかし、この場合だと、シート名が存在するのかどうかのチェックが必要です。

>また、「システム日付で処理対象シートを判断させる」というのは、今後のことを考えれば是非身に付けておきたい方法です。よろしければサンプルコードなどを、教えていただけませんでしょうか。よろしくお願いいたします。

以下のような感じでできます。
ポイントは、
 strSheetName = Format(Now(), "yyyy.m")
です。

Option Explicit

Sub Test()
 Dim strSheetName As String 'システム日付から生成したシート名
 Dim strSheetNameCK As Boolean 'シートの存在チェック
 Dim ws As Worksheet 'すべてのシートを検索する
 
 '現在の日付(Now())から「2005.7」のようなシート名を生成する。
 strSheetName = Format(Now(), "yyyy.m")
 
 strSheetNameCK = False
 '生成したシート名が存在するかどうかのチェック
 For Each ws In Worksheets
  If ws.Name = strSheetName Then
   strSheetNameCK = True
   Exit For
  End If
 Next
 '生成したシート名の存在チェック結果の表示
 If strSheetNameCK Then
  MsgBox "シート " & strSheetName & " は存在します"
 Else
  MsgBox "シート " & strSheetName & " は存在しません"
 End If
End Sub

>ちなみに、…マクロの先頭で、対象シート名を指定していたつもり

そこが「2005.6」に固定されているので、それをユーザーからの入力などにより、変数とすればいいかと思っています。
1 hits

【26368】効率的なコードにするには…。 あさみ 05/7/2(土) 23:54 質問
【26370】Re:効率的なコードにするには…。 かみちゃん 05/7/3(日) 11:30 発言
【26371】Re:効率的なコードにするには…。 あさみ 05/7/3(日) 12:14 お礼
【26373】Re:効率的なコードにするには…。 かみちゃん 05/7/3(日) 14:36 発言
【26375】Re:効率的なコードにするには…。 あさみ 05/7/3(日) 20:32 お礼
【26380】Re:効率的なコードにするには…。 あさみ 05/7/4(月) 1:00 質問
【26387】Re:効率的なコードにするには…。 かみちゃん 05/7/4(月) 12:52 発言
【26416】Re:効率的なコードにするには…。 あさみ 05/7/5(火) 2:05 発言
【26417】Re:効率的なコードにするには…。 かみちゃん 05/7/5(火) 6:39 発言
【26465】Re:効率的なコードにするには…。 あさみ 05/7/6(水) 7:16 発言
【26487】Re:効率的なコードにするには…。 かみちゃん 05/7/6(水) 22:53 発言
【26372】Re:効率的なコードにするには…。 Hirofumi 05/7/3(日) 14:01 回答
【26374】Re:効率的なコードにするには…。 Hirofumi 05/7/3(日) 17:59 回答
【26376】Re:効率的なコードにするには…。 あさみ 05/7/3(日) 20:34 お礼
【26377】Re:効率的なコードにするには…。 Hirofumi 05/7/3(日) 20:54 回答
【26379】Re:効率的なコードにするには…。 あさみ 05/7/3(日) 22:19 お礼

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