エクセルVBAのコードについて質問です

[入力シート]G7が年月日(from)、G9が年月日(to)
このシートに[鈴木][斉藤]・・・のシート名が書いてあります。
[集計表]のG列に“シート名”が書かれている「G5~G25」
[鈴木][斉藤]・・・名前のついたシート(すべて同じ形式で書かれています)
このようなシートがあります。例えば、
 1.[入力シート]のG7とG9に期間(from to)を入れる 2.[入力シート]のシート名の[鈴木]の横のボタンを押す。
 3.[集計表]シートを開く 4.G列G5~G25に書かれている[鈴木]という名前を探す 5.その横(H列)に書かれている文字列を同じシート[集計表]のB1にコピー 6.[鈴木]シートを開く 7.[鈴木]シートの1.に入力されている期間を抽出する 8.抽出結果をコピーする(A2からE列最終行まで) 9.[集計表]シートを開く10.A5に値のみ貼り付ける11.これでA4からE列最終行までデータのある表が作成されるので、その範囲で罫線を入れる。(枠線は細線、中の線は細かい破線)12.[鈴木]+期間+集計表(例:鈴木20101001~20101031集計表)という名前をつけて同じフォルダにファイルを作る。どなたかお願いします。

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2010/10/22 18:59:52
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:Silvanus No.1

回答回数180ベストアンサー獲得回数71

ポイント60pt

非常にややこしい操作ですね。こういう質問をされる時は特に

下のコメント欄を開放した状態にしておかれた方が良いと思いますよ。

回答したいと思っても、ご質問の内容に大きな不明点がある間は当然お答えできませんが

コメント欄が開いていなければ、この様に回答欄を使って質問せざるを得なくなります。

これからは「コメント・トラックバックを受け付ける」設定にして質問して下さい。

既に開始されている質問は、一旦中止して、受付の設定を有効にしてから再開すればOKです。

もし可能なら、Excelの各シートを写したスクリーンショット画像を添付したり、

ワークブックそのものをどこかへアップしてもらうのが一番確実です。

-----

[不明点1]

「入力シート」の中に格納されている「シート名」のセル範囲を教えて下さい。どこですか?

[不明点2]

「[鈴木]シートの1.に入力されている期間を抽出する」が意味不明です。

恐らく[鈴木]シートのA列からE列にわたって5項目のデータが格納されており、

その5項目の内の何れかが日付のデータになっているのでしょうね。

もしそうなら、その日付のデータはどの列に格納されているのでしょうか。

また、それらのデータは2行目から格納されているのですね?

日付に基づいて抽出を行なうと言うことは、結果的に抽出するデータは最終行を含まない

こともある訳ですが、それでいいですね?

[不明点3]

「A4からE列最終行までデータのある表が作成される」とありますが、抽出データはA5へ貼り付けるんですよね?

とすると、A4~E4の範囲は見出し行ということですか?

つまり前もって何らかの値が入力されているのですね?

id:asku

[不明点1]はK10:K30です。

[不明点2]は、1.に書いた内容の意味です。[入力シート]のG7(from)とG9(to)の期間を抽出したいです。

[鈴木]などの名前シートのA2から下が年月日がかかれています。そこの期間を抽出したいです。

>日付に基づいて抽出を行なうと言うことは、結果的に抽出するデータは最終行を含まない・・・それでいいですね?

はい。結構です。

[不明点3]その通りです。

以上、大変肝心なところを説明しないで申し訳ございません。

2010/10/21 22:32:25
  • id:Silvanus
    こんな感じでいかがでしょうか。(また変態的なマクロになってしまった…、汗)
    http://rct3jp.info/hatena/hatena_asku_101021_01.xls
    恐らく、ご希望通りの動作ができていると思うのですが…。いかがでしょうか。
    ボタンコントロールを作るのが面倒臭かったので、一応現時点では
    入力シートにある個人名リストのひとつ右の列のセルを選択したら
    マクロが走るようになってます。選択中のセルの人の処理を行ないたい時は
    一旦他のセル(例えば更にひとつ右側の空白のセル等)を選んでから
    もう一度選択し直して下さい。
    このマクロを既存のワークブックに組み込むには
    まず「入力シート」(Sheet1)に付随するモジュールと
    標準モジュール(Module1)をコピーして下さい。
    次に、標準モジュールの上部に書かれている様に
    「入力シート」「集計表」内のセル範囲の名前の定義を行なって下さい。
    もしこれらの作業が面倒臭ければ
    既存のワークブックの方から逆にデータをコピーして来た方が良いでしょう。
  • id:asku
    Silvanusさんありがとうございました。私のわかりにくい質問内容を汲んで理解してくださりありがとうございました。
    思い通りの動きです!
    ありがとうごさいました。こんなに早くできるなんてすごいです!

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません