advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 27286 for マクロ (0.014 sec.)
[[20090513143513]]
#score: 2168
@digest: e40380237d9021af93b4cc9a913a179f
@id: 43381
@mdate: 2009-05-19T08:19:39Z
@size: 34160
@type: text/plain
#keywords: 未出 (222251), 荷シ (135665), 荷") (86763), 未" (74442), 出荷 (43387), 荷先 (31253), autofilter (26173), field (24147), macro2 (22671), 北海 (19699), 東北 (19662), 海道 (19227), タ") (19079), criteria1 (17804), scrollrow (14619), macro1 (13844), 元デ (13141), selection (8202), sheets (7490), 元シ (7352), activewindow (7179), 記録 (7056), select (6353), 振り (5685), り分 (5606), clearcontents (5249), columns (4981), マク (4908), シー (4732), ート (4570), クロ (4411), 選択 (3653)
『エクセルをひとつのシートでまとめていきたい』(まな)
毎日工場の出荷でデータを担当者からもらい、 そのデータを別エクセルに貼り付け、横セルDの部分の出荷先ごとに シートを分けたい。 出荷先ごとにエクセルを用意してみたのですが、 確認するのが面倒なのでひとつのエクセルでまとめられるのであれば まとめたいと思い、方法があるのか相談をしました。 シートは全部で5つ。北海道、東北、関東、四国、未出荷。 また、まだ出荷していないものは出荷という項目I列で【未】と記載し、 【未】と記載されているものは未出荷というシートにうつしたい。 I列は入力規制で未と済を選択できるようになっていて未を選択したら 未出荷というシートに内容がうつるようにしたい。 下記エクセルを貼り付けたとします。 貼り付けた時点で横セルD列、I列をよみとってそれぞれのシートにうつしたい。 うつしたい内容はA〜I全てです。 でも貼り付けた元データはそのまま全て保管したいので それぞれのシートにコピー?されるようにしたいです。 ------------------------------------------------------------------------------ A B C D E F G H I 日付 担当 取引会社 出荷先 番号 食品名 検品者 出荷数 出荷 ▽ 4/13 *** ****** 東北 2 **** ***** 500 未 4/20 *** ****** 関東 5 **** ***** 1000 済 ・ ・ ・ ・ ------------------------------------------------------------------------------ 二項目いっぺんに別のシート(出荷先と未出荷)に 情報をうつす方法はあるでしょうか? 元データに毎日データを貼り付けていきます。 4/13分が縦セル2〜200までだったら4/14は200〜貼り付けていきます。 似たような内容をこのエクセルの学校で見つけたのですが、 ちょっと状況がちがく、相談させていただきました。 宜しくお願い致します。 ---- 手作業で良いなら、オートフィルタが使用できると思います。 マクロの記録にすれば、ボタン一つで実行も可能になると思います。 >二項目いっぺんに別のシート(出荷先と未出荷)に >情報をうつす方法はあるでしょうか? 例えば、3行目のデータは「未」と成っていますが 東北シートと、未出荷シートと 両方に貼り付けるのですか? それとも、未出荷シートにのみ貼り付けるのですか? また、データのみが転記されれば良いのでしょうか? それとも、セルの情報もコピーが必要なのでしょうか? (HANA) ---- (HANA)さんありがとうございます。 オートフィルタも考えたのですが、項目2つをシートに分けていきたいので できたらマクロ?を使用したいです。 >例えば、3行目のデータは「未」と成っていますが 東北シートと、未出荷シートと 両方に貼り付けるのですか? それとも、未出荷シートにのみ貼り付けるのですか? ○東北シートと未出荷シート両方に貼り付けたいです。 四行目のように出荷が済の場合は関東のシートにのみ貼り付けたいです。 シートに貼り付けても元のデータはとっておきたいです。 >また、データのみが転記されれば良いのでしょうか? それとも、セルの情報もコピーが必要なのでしょうか? ○セルの情報というのは下記項目のことでしょうか?すみません・・。 日付 担当 取引会社 出荷先 番号 食品名 検品者 出荷数 出荷 ▽ 項目も全て貼り付けたいですが、 これは最初にシートに作成しておけば問題 ないでしょうか? またマクロというのもがどういうときに使用できるのかも教えてください。 何度もすみません。 (まな) ---- >できたらマクロ?を使用したいです。 >○東北シートと未出荷シート両方に貼り付けたいです。 分かりました。 >○セルの情報というのは下記項目のことでしょうか? 済みません、説明が悪かったようです。 「セルの情報」と言うのは、例えば 背景色、文字色、罫線 等のつもりでした。 >マクロというのもがどういうときに使用できるのかも教えてください。 以下、非常に簡易的な物です。 まずはご自身で体験(作成)してみて下さい。 元シートの1行目にオートフィルタを設定しておきます。 元シートを選択した状態で ●マクロの記録開始(マクロ名 Macro1) 1.未出荷 シートを選択 2.A:I列を選んで [Delete] 3.元シートを選択 4.I列のオートフィルタで「未」を選択 5.A:I列を選択、コピー 6.未出荷シートのA1セルを選択 7.貼り付け 8.元シートを選択 9.I列のオートフィルタで「全て表示」 ■マクロの記録終了 マクロの記録に関してはこちらもご参考に。 http://www.excel.studio-kazu.jp/lib/e4b/e4b.html ライブラリより「マクロの自動記録」 これで、元シートの情報が変わっても 「Macro1」を実行すると、 その時のI列が「未」と成っているデータが 未出荷シートに貼り付きます。 マクロは、ツール(T)→マクロ(M) マクロ(M) から「Macro1」を選択し、[実行(R)]ボタンを押すと 実行されます。 記録が出来たら、そのコードをこちらに貼り付けて下さい。 コードはツール(T)→マクロ(M) マクロ(M) から「Macro1」を選択し、[編集(E)]ボタンを押すと出てきます。 上手く行かない場合は、合わせて どの様に上手く行かないかも教えて下さい。 (HANA) ---- HANAさんありがとうごさいます。 最初からつまづいてしまったのですが、 >1.未出荷 シートを選択 2.A:I列を選んで [Delete] これはエクセルの未出荷シートを選択するのではなくてマクロのコードの 画面左側で選択 すればいいのでしょうか? エクセルの未出荷シートを選択した場合、列を選らんで[Delete] を押すと最初に作成していた項目が消えてしまうのですが、 項目は作成しなくていいのでしょうか? >5.A:I列を選択、コピー これはD:I列ではなくAの日付を選択していいのでしょうか? いきなり申し訳ないです。 ご助言お願いします (まな) ---- えっと・・・手作業でする事を考えて下さい。 元シートのI列が「未」と成っている行だけを集めて 未出荷シートにコピーしようと思ったら 3.元シートを選択 4.I列のオートフィルタで「未」を選択 5.A:I列を選択、コピー 6.未出荷シートのA1セルを選択 7.貼り付け の作業をしますよね。 1.未出荷 シートを選択 2.A:I列を選んで [Delete] この作業は、データを貼り付ける前に 前回貼り付けたデータを削除するものです。 まっさらの状態の未出荷シートに 新しく抽出したデータを貼り付けられる様に 「7.貼り付け」の前までに、 未出荷シートのデータを削除しておきます。 >エクセルの未出荷シートを選択した場合、列を選らんで[Delete] >を押すと最初に作成していた項目が消えてしまうのですが、 >項目は作成しなくていいのでしょうか? 「5.A:I列を選択、コピー」で、見出しも一緒にコピーし 「7.貼り付け」で、見出しも一緒に貼り付けます。 元シートの見出しと違う見出しが必要なら 消してしまった場合、作成が必要に成りますが 同じなら、作成不要です。 >これはD:I列ではなくAの日付を選択していいのでしょうか? A列からI列までの全てをコピーするのですよね? ですから A列からI列を選んで下さい。 列見出しのアルファベット部分をクリックすると、 列全体が選択できます。 D:I列のみコピーされれば良いのなら この範囲を選択して、コピーして下さい。 この段階では、マクロのコードの方(VBE)は関与しません。 エクセルのワークシート上で操作を行って下さい。 (HANA) ---- 今マクロの自動記録中なんですが停止ボタンを押す前に何かエクセル上でやっておくことは ありますか? 初めてのマクロでどうしていいかわかりません。。。 (まな) ---- マクロの記録を開始して 停止ボタンを押す前に 1〜9の操作をして下さい。 それ以外の操作は厳禁です。 記録中に1〜9の操作を順番に行ったら 停止ボタンを押して、記録を終了させて下さい。 「マクロ!!」なんて身構える必要は有りません。 通常の操作の前と後に 「記録の開始」「終了」の操作が増えるだけです。 後は、通常の操作と同じです。 コードはエクセルが、勝手に作成してくれます。 (HANA) ---- (HANA)さんありがとうございます。 今Macro1の実行を押したら 実行時エラー-2147467259(50004005) 'select'メゾットは失敗しました:Shape'オブジェクト というエラーが出てしまいました・・。 なぜでしょう・・・。 ひとまず終了を押してみました。 なかなか出来なくて悔しいです・・。 (まな) ---- 大丈夫ですよ。 どこかで手順が違ったんだと思います。 取り敢えず、そのコードをこちらへ載せてみて下さい。 何か分かるかもしれませんので。 (HANA) ---- HANAさんありがとうございます。 下記コードです。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2009/5/14 ユーザー名 : mana ' Sheets("未出荷").Select Selection.ClearContents Sheets("元データ").Select ActiveWindow.SmallScroll Down:=-12 ActiveSheet.Shapes("Drop Down 18").Select ActiveSheet.Shapes("Drop Down 18").Select ActiveSheet.Shapes("Drop Down 18").Select ActiveSheet.Shapes("Drop Down 18").Select ActiveSheet.Shapes("Drop Down 18").Select ActiveSheet.Shapes("Drop Down 18").Select Range("K3:K4").Select Selection.AutoFilter Field:=9, Criteria1:="未" Columns("A:M").Select Selection.Copy Sheets("未出荷").Select Range("A1").Select ActiveSheet.Paste Sheets("元データ").Select Selection.AutoFilter Field:=9 Application.CutCopyMode = False End Sub 宜しくお願いします。 (まな) ---- 遅くなりました、済みません。 記録手順とコードと対比させてみます。 1.未出荷 シートを選択 Sheets("未出荷").Select 2.A:I列を選んで 記録無し 2.[Delete] Selection.ClearContents 3.元シートを選択 Sheets("元データ").Select ActiveSheet.Shapes("Drop Down 18").Select Range("K3:K4").Select この部分の操作が不明。 4.I列のオートフィルタで「未」を選択 Selection.AutoFilter Field:=9, Criteria1:="未" 5.A:I列を選択、コピー Columns("A:M").Select Selection.Copy 6.未出荷シートのA1セルを選択 Sheets("未出荷").Select Range("A1").Select 7.貼り付け ActiveSheet.Paste 8.元シートを選択 Sheets("元データ").Select 9.I列のオートフィルタで「全て表示」 Selection.AutoFilter Field:=9 まず、2の手順の「A:I列を選んで」が無い様です。 また、3と4の間の操作が問題に思います。 ドロップダウンリストを選択したと思いますが、何故ですか? K3:K4セルも選択されている様です。 何か意図が有ったのではないなら、もう一度 その操作をせずに、記録をとってみて下さい。 何か意図が有るのなら、何をするためか教えて下さい。 (HANA) ---- HANAさん丁寧にありがとうございます。 やり直してみて下記コードになりました。 このコードをどこに貼り付ければよいのか教えてください。 何度もすみません。。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2009/5/14 ユーザー名 : mana' ' Sheets("未出荷").Select Columns("A:M").Select Selection.ClearContents Sheets("元データ").Select Selection.AutoFilter Field:=9, Criteria1:="未" Columns("A:M").Select Selection.Copy Sheets("未出荷").Select Range("A1").Select ActiveSheet.Paste Sheets("元データ").Select Selection.AutoFilter Field:=9 End Sub ---- 貼り付け・・・・って >記録が出来たら、そのコードをこちらに貼り付けて下さい。 の事ですか・・・? このコードはこれで完成です。 元データのI列の「未」の位置を変更・追加・削除して このマクロを実行させてみて下さい。 その時に「未」が付いている行だけが 未出荷シートに貼り付くと思います。 今度は大丈夫ですよね? もう一つ、記録にしてもらいたい手順が有ります。 現在 未出荷シートに関するマクロが出来ました。 次に 北海道シートに関するマクロも作成して下さい。 手順は、同じですが 未出荷シートが北海道シートに変わること。 また、 > 4.I列のオートフィルタで「未」を選択 が、 4-1.I列のオートフィルタで 空白セル(或いは、未と等しくない)を選択 4-2.D列のオートフィルタで 北海道 を選択 に変わります。 (HANA) ---- (HANA)さんありがとうございます!未出荷シートうつりました! これは毎回ツール(T)→マクロ(M) マクロ(M) から「Macro1」を選択し、[実行(R)]の作業を しないといけないということですよね? また、次の地区のシートについてですが、 Macro2という名前で新しいマクロを記録すれば大丈夫でしょうか? 質問ばかりですみません。 (まな) ---- 大丈夫です。 これ(Macro2)が出来たら、後は手直しと複製ですから ゴールは近いですよ。 マクロの実行方法は、 ショートカットキーを割り当てる 元データシート上にマクロ実行ボタンを配置する 等で、メニューから辿る以外の方法で 実行させることも出来ます。 いずれにしても、5つのシートに関する処理なので 自動実行ではなく、人が思うタイミングで 実行させるのが良いと思いますが。 何かご希望が有りますか? (HANA) ---- ありがとうございます。 地区のシートは北海道、東北、関東、四国と四つあるのですが、 今から作成するMacro2の >手順は、同じですが 未出荷シートが北海道シートに変わること。 部分は北海道のみだけで大丈夫でしょうか? >マクロの実行方法は、 ショートカットキーを割り当てる 元データシート上にマクロ実行ボタンを配置する 等で、メニューから辿る以外の方法で 実行させることも出来ます。 ○全ての作業が終了したらどうやってショートカットキーを作成するのか、 実行ボタンを作成するのか教えてください。 >何かご希望が有りますか? ○マクロが初めてなので全て終了してから聞いた方がいいのか分からないのですが、 毎日いろんな地区のデータが混ざってくるので それを元データに貼り付けた時点でそれぞれの地区のシート、未出荷のシートに 移したいです。でもこんなことができるのかさえも分からないので、 一旦マクロを完成させます! (まな) ---- 貼り付け先のシートが「北海道」 抽出するデータが「北海道」「未でない」 の二つしか変わらないので、 記録をする際も、その二つの変更で良いです。 あ、 >9.I列のオートフィルタで「全て表示」 は、D,I列 ですね。 以下は、ちょっとした読み物です。 難しければ「そんな物か」と思っておいて下さい。 その内分かる様に成ると思いますので。 マクロの記録で得られたコードは 不要な部分がたくさん有ります。 「Select・・・Selection」等の部分は 多くの場合省略出来ます。 Macro1に関してこんな感じで省略して行くと Sheets("未出荷").Select Columns("A:M").Select Selection.ClearContents → Sheets("未出荷").Columns("A:M").ClearContents Sheets("元データ").Select → With Sheets("元データ").Range("A1") Selection.AutoFilter Field:=9, Criteria1:="未" → .AutoFilter Field:=9, Criteria1:="未" Columns("A:M").Select Selection.Copy Sheets("未出荷").Select Range("A1").Select ActiveSheet.Paste Sheets("元データ").Select → .CurrentRegion.Resize(, 13).Copy Sheets("未出荷").Range("A1") Selection.AutoFilter Field:=9 → .AutoFilter Field:=9 追 End With 記録コードは、ここまでスリムに成ります。 Sub Macro1改造() Sheets("未出荷").Columns("A:M").ClearContents With Sheets("元データ").Range("A1") .AutoFilter Field:=9, Criteria1:="未" .CurrentRegion.Resize(, 13).Copy Sheets("未出荷").Range("A1") .AutoFilter Field:=9 End With End Sub (HANA) ---- HANAさんなんとなく・・マクロコードの意味がわかったので 省略も理解できましたが自分はまだまだそこまで手がまわらなそうです・・。 今Macro2の実行まで終了しました! ただ、他の関東や東北の情報がそれぞれのシートにうつってないです。 未出荷のものは未出荷シートにうつったのですが・・。 このあとにやる作業をお手数ですが教えてください! (まな) ---- >今Macro2の実行まで終了しました! このコードをこちらへ載せて下さい。 Macro2に関しても、Macro1改造の様な変更と 北海道以外にも使えるような改造を施しますので。 (HANA) ---- HANAさんありがとうございます。 下記コードになります。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2009/5/14 ユーザー名 :mana' ' Sheets("未出荷").Select Columns("A:M").Select Selection.ClearContents Selection.ClearContents Sheets("元データ").Select Selection.AutoFilter Field:=9, Criteria1:="未" Columns("A:M").Select Selection.Copy Sheets("未出荷").Select Range("A1").Select ActiveSheet.Paste Sheets("元データ").Select Selection.AutoFilter Field:=9 Application.CutCopyMode = False End Sub Sub Macro2() ' ' Macro2 Macro ' マクロ記録日 : 2009/5/14 ユーザー名 : mana ' ' Sheets("北海道 ").Select Columns("A:M").Select Selection.ClearContents Sheets("元データ").Select ActiveWindow.SmallScroll Down:=-3 Selection.AutoFilter Field:=9, Criteria1:="=" ActiveWindow.SmallScroll Down:=-9 Selection.AutoFilter Field:=2, Criteria1:="北海道" Columns("A:M").Select Selection.Copy Sheets("北海道 ").Select Range("A1").Select ActiveWindow.SmallScroll Down:=-3 ActiveSheet.Paste Sheets("元データ").Select Selection.AutoFilter Field:=2 Selection.AutoFilter Field:=9 Application.CutCopyMode = False End Sub 宜しくお願いします。(まな) ---- >Selection.AutoFilter Field:=2, Criteria1:="北海道" って成ってますが、出荷先はB列に有るのですか・・・? それとも、データがA列から始まっていないのですかね? また、シート名が「北海道 」と最後にスペースが入っていますが 出荷先とシート名は統一されてないのですかね? それから、うっかりしてましたが I列は「済」が必ず入っていますか? 入っているなら、絞り込みは「済」でやらないといけませんね。 入っていないなら「空白セル」で良いですが。。。。 取り敢えず、出荷先がB列、「済」データを各シートへ転記します。 コードの順番を揃えるために、Macro1改造から並びを少し変更しました。 取り敢えず、これでやってみてもらえますかね。 '------ Sub 振り分け() Dim sna, sn sna = Array("北海道", "東北", "関東", "四国") With Sheets("元データ").Range("A1") .AutoFilter Field:=9, Criteria1:="済" For Each sn In sna .AutoFilter Field:=2, Criteria1:=sn Sheets(sn).Columns("A:M").ClearContents .CurrentRegion.Resize(, 13).Copy Sheets(sn).Range("A1") Next .AutoFilter Field:=2 .AutoFilter Field:=9 End With With Sheets("元データ").Range("A1") .AutoFilter Field:=9, Criteria1:="未" Sheets("未出荷").Columns("A:M").ClearContents .CurrentRegion.Resize(, 13).Copy Sheets("未出荷").Range("A1") .AutoFilter Field:=9 End With End Sub '------ (HANA) ---- HANAさん >Selection.AutoFilter Field:=2, Criteria1:="北海道" って成ってますが、出荷先はB列に有るのですか・・・? それとも、データがA列から始まっていないのですかね? ○いろいろ項目を増やしてしまい、データはA〜Mまであり、 出荷先はC列にあります。 これはField:=2だからBにあるという見方ですか?Field:=1だったらAということですか? シート名になぜかスペースが入ってたので修正しました。 >I列は「済」が必ず入っていますか? ○未と空白セルしかないので空白セルでやってみます! できたら報告します! (まな) ---- たびたびすみません! 上記コードはMacro1でもMacro2でもどっちの編集から入っても 貼り付ければ大丈夫でしょうか? (まな) ---- コードをMacro1で編集で貼り付けて、 ツール(T)→マクロ(M) マクロ(M) から「振り分け」を選択し、[実行]をしたら 実行時エラー9と出てしまい、データが全て消えてしまいました・・・。 保存してないので大丈夫かと思いますが、 なぜうまく実行されないんでしょうか。。。。 何度もすみません。。 (まな) ---- >データが全て消えてしまいました・・・。 何処のシートのデータが消えましたか? また、エラーが出たときに [ デバッグ ] ボタンを押して どの行が黄色くなって止まるか教えて下さい。 (HANA) ---- Macro1とMacro2があるのでマクロ名を【振り分け】とし作成ボタンを押 しました。 下記コードを振り分けに貼り付け実行をすると実行エラー9で Sheets(sn).Columns("A:M").ClearContentsの部分が 黄色ラインになっています。 (項目はA列〜M列まであります。) '------ Sub 振り分け() Dim sna, sn sna = Array("KIDS", "MENS", "WOMENS", "OUTLET") With Sheets("元データ").Range("A1") .AutoFilter Field:=9, Criteria1:="未" For Each sn In sna .AutoFilter Field:=2, Criteria1:=sn Sheets(sn).Columns("A:M").ClearContents←ここが黄色ライン .CurrentRegion.Resize(, 13).Copy Sheets(sn).Range("A1") Next .AutoFilter Field:=2 .AutoFilter Field:=9 End With With Sheets("元データ").Range("A1") .AutoFilter Field:=9, Criteria1:="未" Sheets("未出荷").Columns("A:M").ClearContents .CurrentRegion.Resize(, 13).Copy Sheets("未出荷").Range("A1") .AutoFilter Field:=9 End W ith End Sub '------ 何度もお手数ですがアドバイスお願いします (まな) ---- シート名は、半角大文字で KIDS MENS WOMENS OUTLET と成っていますか? (HANA) ---- はい。シート名はコードと書式は同じです。 今振り分けのマクロで再度実行をしたら罫線だけがうつっているだけで 文字がうつっていません。。。 (地区別と性別どっちでわけようと考えていたので シート名がかわってしまっていて申し訳ないです。) ただ全てのシートにA1〜の項目のみがうつっています。 二回振り分けで実行したら、次は罫線もうつらなくなってしまいました・・。 どこを修正していいかわからなくなってしまい、 再度アドバイス頂けますでしょうか。 申し訳ありません。。 (まな) ---- ん? 「エラーで止まらなくなった (エラーは出なくなった)」 って事ですか? (HANA) ---- すみません!エラー表示はでなくなりました! でも内容がシートごとにうつりません。 項目のみしかうつらないのです。 (まな) ---- エラーは出なくなったのですね。 それは良かったです。 状況が変わっていますので、もう一度 マクロの記録をやってもらっても良いのですが・・・・ 一応、この辺りから。 >出荷先はC列にあります。 >これはField:=2だからBにあるという見方ですか? >Field:=1だったらAということですか? Fieldの所の番号は、オートフィルタが設定されている範囲の列の 先頭から数えた時の番号に成ります。 例えば、A1:M1に設定されていたら A1でフィルタをかけた時に「1」 B1でフィルタをかけた時に「2」 に成ります。 例えば、B1:M1に設定されていたら B1でフィルタをかけた時に「1」 C1でフィルタをかけた時に「2」 です。 コードは現在、2番目の列で絞り込みを行っています。 >.AutoFilter Field:=2, Criteria1:=sn それで、何も抽出されないから 貼り付けないのでは無いかと思います。 オートフィルタが設定されている範囲の3列目で絞り込む場合は 「3」にして下さい。 "KIDS", "MENS", "WOMENS", "OUTLET" は何列目に該当しますか? 現在、ツール→マクロ マクロ から マクロを選択して[ 実行(R) ]で実行していると思いますが この時に [ ステップイン(S) ]を選んでみて下さい。 コードが表示され、黄色くハイライトされる行が有ると思います。 [ F8 ]キーを押すと、その行が一行ずつ下がっていきます。 例えば > .AutoFilter Field:=9, Criteria1:="済" > .AutoFilter Field:=2, Criteria1:=sn 等の行を通過した後、ブックに戻って シートが どの様な状態に成っているか 確認して下さい。 また、コード内のsnの部分に マウスをあててしばらく待つと snに何が入っているかも確認出来ます。 ここに入っている文字で、オートフィルタで抽出されたり その名前のシートに貼り付け 等が行われます。 よく分からなければ、もう一度 記録をとってこちらに載せてみて下さい。 (HANA) ---- もう一度Macro1からやり直してみました。 Macro1作業 @ツール→マクロ→新しいマクロの記録をクリック A未出荷シートを選択、A〜Mまで選択しDelete (このとき未出荷シートは元々何の記載もなくまっさらな状態) B元データのシートにいき、列jの出荷で未を選択 CA〜Mを選択しコピー D未出荷シートにいき貼り付け E元データに戻り列Jをすべてで全表示にもどす Fツール→マクロマクロの記録終了 続いて地区シートの作業 @ツール→マクロ→新しいマクロの記録→マクロ名 Macro2で作成 A北海道シートを選択、A〜Mまで選択しDelete (このとき北海道シートは元々何の記載もなくまっさらな状態) B元データにいき、列Cの出荷先オートフィルタでで北海道を選択、 列Jで空白セルを選択 CA〜Mを選択しコピー D北海道シートにいき貼り付け E元データに戻り列C、列Jをすべてで全表示にもどす Fツール→マクロマクロの記録終了 上記作業が終了したらツール→マクロマクロマクロ名を【振り分け】で HANAさんが加工してくれたマクロコードを貼り付け 下記コードになります。 ☆出荷先はC列でオートフィルタはA列から設定されているので3 出荷はJ列のため10 '------ Sub 振り分け() Dim sna, sn sna = Array("北海道", "東北", "関東", "四国") With Sheets("元データ").Range("A1") .AutoFilter Field:=10, Criteria1:="未" For Each sn In sna .AutoFilter Field:=3, Criteria1:=sn Sheets(sn).Columns("A:M").ClearContents .CurrentRegion.Resize(, 13).Copy Sheets(sn).Range("A1") Next .AutoFilter Field:=3 .AutoFilter Field:=10 End With With Sheets("元データ").Range("A1") .AutoFilter Field:=10, Criteria1:="未" Sheets("未出荷").Columns("A:M").ClearContents .CurrentRegion.Resize(, 13).Copy Sheets("未出荷").Range("A1") .AutoFilter Field:=10 End With End Sub '------ Macro1とMacro2の作業を終了した時点でとちらも実行を押すと 問題なくシートにうつりました。 上記コードをツール→マクロマクロ名 【振り分け】にしてOK (※このときMacro1とMacro2は表示されなくなり、 振り分けのマクロのみにある状態です。) 上記の振り分けマクロを実行すると元データは縦セル1〜500まで表示されなくなりました。 (※非表示設定になっているような感じです。 ただ再表示をおしても表示されず縦セル1の次に500がきている状態です。 元データは1〜500までありました。) また、Macro1やMacro2で実行できていたデータが消えていて 北海道シートも未出荷シートも項目と罫線のみになってしまいました。。 これまでのやりとりを最初から確認し、作業をしてみました。 >ライブラリより「マクロの自動記録」 の作業をやっていないかもしれません。このライブラリというのはどこにあるのでしょうか・・? もう少しのところなのになかなかできなくてすみません。。 どこか作業でおかしいところがありますでしょうか? 長々と記載してしまい申し訳ございません。 宜しくお願いします. (まな) ---- このページTOPの緑のフィールド、左下部分をご覧下さい。 ---- >Macro1とMacro2の作業を終了した時点でとちらも実行を押すと >問題なくシートにうつりました。 このコードを載せて下さい。 また >上記コードをツール→マクロマクロ名 【振り分け】にしてOK >(※このときMacro1とMacro2は表示されなくなり、 >振り分けのマクロのみにある状態です。) Macro1とMacro2を消して、「振り分け」を貼り付けたため Macro1とMacro2の表示が無くなるのですか? 下に続けて貼り付けてみるとどうですか? (HANA) ---- >ライブラリより「マクロの自動記録」 ってのは、↓のurlを参考にして下さい。 http://www.excel.studio-kazu.jp/lib/e4b/e4b.html と、載せたときのページの名前の事で 何かの操作の事では有りません。 Macro1とMacro2が正常に動くのなら 記録は正しくできていると思います。 一応お伺いしてみますが、項目・シート名など こちらへ載せる前に手で変更して居られますか? そうで有れば、先にシート名・データなどを 公開出来る情報に書き換えた後、マクロの記録をとり そのままをこちらへ貼り付けて下さい。 因みに >.AutoFilter Field:=10, Criteria1:="未" だと、両方「未」と成っている物を選んでいますね。 それから、ステップインで実行中 >元データは縦セル1〜500まで表示されなくなりました。 この時に、C列のオートフィルタで 何が抽出されているか ▼を開いて確認してみて下さい。 また、C,J列以外の▼が青くなっていないかも 確認して下さい。 >上記の振り分けマクロを実行すると元データは >縦セル1〜500まで表示されなくなりました。 これって、マクロが最後まで進んでもその状態だった って事ですか? でしたら .AutoFilter Field:=3 .AutoFilter Field:=10 が実行されていない様に思いますが・・・・。 (HANA) ---- >一応お伺いしてみますが、項目・シート名など こちらへ載せる前に手で変更して居られますか? 変更はしてますが、シート名を変えいているだけです。 >下に続けて貼り付けてみるとどうですか? Macroは1からやり直し、Macro1とMacro2の下に貼り付けてみました。 そうしましたら下記のようなエラーが出てきてしまい、ました・・。 下に貼り付けた 振り分け とういう部分が黄色くなってしまっています。。 エラー内容→ End Sub、End FunctionまたはEnd Property以降にはコメントのみが記述できます。 コード↓ Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2009/5/19 ユーザー名 : mana ' ' Sheets("未出荷").Select Columns("A:M").Select Selection.ClearContents Sheets("元データ").Select Selection.AutoFilter Field:=10, Criteria1:="未" Columns("A:M").Select Selection.Copy Sheets("未出荷").Select Range("A1").Select ActiveSheet.Paste Sheets("元データ").Select Application.CutCopyMode = False Range("J1").Select Selection.AutoFilter Field:=10 End Sub Sub Macro2() ' ' Macro2 Macro ' マクロ記録日 : 2009/5/19 ユーザー名 :mana ' ' Sheets("北海道").Select Columns("A:M").Select Range("A13").Activate Selection.ClearContents Sheets("元データ").Select Selection.AutoFilter Field:=3, Criteria1:=" 北海道" Selection.AutoFilter Field:=10, Criteria1:="=" Columns("A:M").Select Selection.Copy Sheets("北海道").Select ActiveWindow.ScrollRow = 10 ActiveWindow.ScrollRow = 9 ActiveWindow.ScrollRow = 8 ActiveWindow.ScrollRow = 7 ActiveWindow.ScrollRow = 6 ActiveWindow.ScrollRow = 5 ActiveWindow.ScrollRow = 4 ActiveWindow.ScrollRow = 3 ActiveWindow.ScrollRow = 2 ActiveWindow.ScrollRow = 1 Range("A1").Select ActiveSheet.Paste Sheets("元データ").Select Application.CutCopyMode = False '------ Sub 振り分け() ←この部分が黄色ライン Dim sna, sn sna = Array("北海道", "東北", "関東", "四国") With Sheets("元データ").Range("A1") .AutoFilter Field:=10, Criteria1:="未" For Each sn In sna .AutoFilter Field:=3, Criteria1:=sn Sheets(sn).Columns("A:M").ClearContents .CurrentRegion.Resize(, 13).Copy Sheets(sn).Range("A1") Next .AutoFilter Field:=3 .AutoFilter Field:=10 End With With Sheets("元データ").Range("A1") .AutoFilter Field:=9, Criteria1:="未" Sheets("未出荷).Columns("A:M").ClearContents .CurrentRegion.Resize(, 13).Copy Sheets("未出荷").Range("A1") .AutoFilter Field:=10 End With End Sub '------ Selection.AutoFilter Field:=3 Selection.AutoFilter Field:=10 End Sub 振り分けというシートはないのですが、大丈夫でしょうか? また、この振り分け実行する前はMacro1とMacro2は実行されます。。 今週中には完成させたいのですが、なんだかうまくいきません。。。 やり直すたびに違うエラーがでてしまうので、聞く質問もごちゃごちゃになってしまいます。 本当に申し訳ないです。アドバイスお願いします (まな) ---- 何でそんなところに入れちゃったんです。(涙) Sub 〜 End Sub が一つのコードです。 >Macroは1からやり直し、Macro1とMacro2の下に貼り付けてみました。 End Sub の下に貼り付けて下さい。。。。 取り敢えず、一回全部消してもらって ↓のコードだけを貼り付けて やってみてもらいましょうかね。 '------ Sub 振り分け2() Dim sna, sn sna = Array("北海道", "東北", "関東", "四国") With Sheets("元データ").Range("A1") .AutoFilter Field:=10, Criteria1:="=" For Each sn In sna .AutoFilter Field:=3, Criteria1:=sn Sheets(sn).Columns("A:M").ClearContents .CurrentRegion.Resize(, 13).Copy Sheets(sn).Range("A1") Next .AutoFilter Field:=3 .AutoFilter Field:=10 End With With Sheets("元データ").Range("A1") .AutoFilter Field:=10, Criteria1:="未" Sheets("未出荷).Columns("A:M").ClearContents .CurrentRegion.Resize(, 13).Copy Sheets("未出荷").Range("A1") .AutoFilter Field:=10 End With End Sub '------ (HANA) ---- HANAさんありがとうございます!できました。 HANAさんの言っていた>下に続けて貼り付けてみるとどうですか? というのはMacro1とMakuro2の下に続けて貼り付けるということではなかったのですね。 理解しておらず申し訳ないです。 また、先ほど記載してもらったコードは本当ならMacro1とMacro2を完成した時点で 自分で確認することができるのでしょうか? 今後ひとりでMakuroを作成するのにとても手こずってしまいそうです・・。 (まな) ---- いやいや、 >下に続けて貼り付ける って事でした。。。 Macro1は「未出荷」シートへの振り分け Macro2は「北海道」シートへの振り分け を記録した物のはずですよね。 (最後に載せて居られる Macro2は 未出荷シートの選択が 記録されているようですが・・・・??) ''↓ここからMacro1 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2009/5/19 ユーザー名 : mana ' ''・・・(中略1)・・・ Selection.AutoFilter Field:=10 End Sub ''↑ここまでがMacro1 ''↓ここからがMacro2 Sub Macro2() ' ' Macro2 Macro ' マクロ記録日 : 2009/5/19 ユーザー名 :mana ' ''・・・(中略2)・・・ Selection.AutoFilter Field:=3 Selection.AutoFilter Field:=10 End Sub ''↑ここまでがMacro2 ''↓ここから下に「振り分け」を貼り付ける。 Sub 振り分け() ''・・・(中略3)・・・ End Sub って形に成るはずでした。 なのにまなさんったら、Macro2の ・・・(中略2)・・・ って成ってる所に 振り分けコードを入れてしまったものだから >End Sub、End FunctionまたはEnd Property以降には >コメントのみが記述できます。 なんて怒られてしまうのです。(涙) ご自身で確認する点としては・・・・(最後のコードだけ見ることにしますね。) Macro1(未出荷) Macro2(北海道)の順で記録をとってもらいましたが 私が作ったコードは 各地域の処理が先にあって、その後 未出荷の処理があります。 なので、 上側にある >.AutoFilter Field:=10, Criteria1:="未" は、本当は →.AutoFilter Field:=10, Criteria1:="=" でしたね。 各地域には「入力がないデータ」を転記するので。 それから、下側にある >.AutoFilter Field:=9, Criteria1:="未" は、本当は →.AutoFilter Field:=10, Criteria1:="未" でしたね。 「未」と入っているのは、10番目のフィールドですから。 私はこれらを、実際に取って載せてもらった記録と見比べて 変更しただけです。 落ち着いて見てみると、分かりそうですか? これまでに載せて居られるコードで 正しい所が、次に載せてもらった時に 間違った記述になっていたり・・・ 記録も私が載せた手順とは違う部分が有ったり・・・ 色々な事になっている様です。 ここが違うかも、あそこが違うかも と、次々になおしていくのではなく 一つずつ確認をしながら なおして行くのが良いと思います。 まずは仕切なおして 私が最初にのせた「振り分け」のコードを ご自身で記録されたマクロを参考に 修正してみられてはどうでしょう。 (HANA) ---- HANAさんいつも丁寧にありがとうございます! ひとりですぐに作成できるように学んでいこうと思います! まずはもう一度最初から見直してみようと思います。 ありがとうございます! (まな) ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/200905/20090513143513.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97040 documents and 608054 words.

訪問者:カウンタValid HTML 4.01 Transitional