[[20060901213056]] 『マクロまたはVBAの早業を教えてください』(れいまま) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロまたはVBAの早業を教えてください』(れいまま)

エクセル2000  ウインドウズ98

こんにちは。
@以前、こちらでVBA?を教えていただき自分で勉強していましたが
やはり初心者には難しいです。
マクロから勉強して すこし作ってみました。
このマクロをもっと簡略することは出来ないでしょうか?
クリックしたらすぐ表示されるようにしたいのです。
どなたか教えてください。

Sub ワースト()
'
' ワースト Macro
' マクロ記録日 : 2006/9/1 ユーザー名 : れいまま
'

'

    Range("K1:Q1").Select
    ActiveWindow.ScrollRow = 1318
    Range("K1:Q1318").Select
    Selection.Sort Key1:=Range("Q2"), Order1:=xlAscending, Key2:=Range("N2") _
        , Order2:=xlAscending, Key3:=Range("K2"), Order3:=xlAscending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        SortMethod:=xlPinYin
    Range("K2").Select
    ActiveWindow.ScrollRow = 1318
    Range("K2:Q1318").Select
    Selection.Copy
    Range("S18").Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    ActiveWindow.SmallScroll ToRight:=8
    Range("U14").Select
End Sub
Sub ベスト()
'
' ベスト Macro
' マクロ記録日 : 2006/9/1  ユーザー名 : れいまま
'

'

    Range("K1:Q1").Select
    ActiveWindow.ScrollRow = 1318
    Range("K1:Q1318").Select
    Application.CutCopyMode = False
    Selection.Sort Key1:=Range("Q2"), Order1:=xlDescending, Key2:=Range("N2") _
        , Order2:=xlAscending, Key3:=Range("K2"), Order3:=xlAscending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        SortMethod:=xlPinYin
    Range("K2").Select
    ActiveWindow.ScrollRow = 1318
    Range("K2:Q1318").Select
    Selection.Copy
    ActiveWindow.SmallScroll ToRight:=5
    Range("S18").Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Range("U14").Select
End Sub
Sub CLEAR()
'
' CLEAR Macro
' マクロ記録日 : 2006/9/1  ユーザー名 : れいまま
'

'

    Range("S18:Y18").Select
    ActiveWindow.ScrollRow = 1318
    Range("S18:Y1318").Select
    Selection.ClearContents
    Range("U14").Select
End Sub
Sub 相模原()
'
' 相模原 Macro
' マクロ記録日 : 2006/9/1  ユーザー名 : れいまま
'

'

    Selection.AutoFilter Field:=6, Criteria1:="27019"
    Range("A8:G8").Select
    ActiveWindow.ScrollRow = 1316
    Range("A8:G1316").Select
    Selection.Copy
    ActiveWindow.SmallScroll ToRight:=13
    ActiveWindow.ScrollColumn = 42
    Range("AP5").Select
    ActiveSheet.Paste
    Range("AP2").Select
End Sub
Sub 橋本()
'
' 橋本 Macro
' マクロ記録日 : 2006/9/1  ユーザー名 : れいまま
'

'

    Selection.AutoFilter Field:=6, Criteria1:="27229"
    Range("A7").Select
    ActiveWindow.ScrollRow = 1318
    Range("A7:G1318").Select
    Selection.Copy
    ActiveWindow.ScrollColumn = 42
    ActiveWindow.SmallScroll ToRight:=18
    ActiveWindow.SmallScroll Down:=42
    ActiveWindow.ScrollRow = 324
    ActiveWindow.SmallScroll Down:=-7
    ActiveWindow.SmallScroll ToRight:=18
    Range("CG5").Select
    ActiveSheet.Paste
    Range("CH2").Select
End Sub
Sub 海老名()
'
' 海老名 Macro
' マクロ記録日 : 2006/9/1  ユーザー名 : れいまま
'

'

    Selection.AutoFilter Field:=6, Criteria1:="27029"
    Range("A7").Select
    ActiveWindow.ScrollRow = 1318
    Range("A7:G1318").Select
    Selection.Copy
    ActiveWindow.ScrollColumn = 42
    ActiveWindow.SmallScroll ToRight:=18
    ActiveWindow.SmallScroll Down:=42
    ActiveWindow.ScrollRow = 324
    ActiveWindow.SmallScroll Down:=-7
    ActiveWindow.SmallScroll ToRight:=18
    Range("AY5").Select
End Sub
Sub 大和()
'
' 大和 Macro
' マクロ記録日 : 2006/9/1  ユーザー名 : れいまま
'

'

    Selection.AutoFilter Field:=6, Criteria1:="27039"
    Range("A7").Select
    ActiveWindow.ScrollRow = 1318
    Range("A7:G1318").Select
    Selection.Copy
    ActiveWindow.ScrollColumn = 42
    ActiveWindow.SmallScroll ToRight:=18
    ActiveWindow.SmallScroll Down:=42
    ActiveWindow.ScrollRow = 324
    ActiveWindow.SmallScroll Down:=-7
    ActiveWindow.SmallScroll ToRight:=18
    Range("AY5").Select
End Sub
Sub 平塚()
'
' 平塚Macro
' マクロ記録日 : 2006/9/1  ユーザー名 : れいまま
'

'

    Selection.AutoFilter Field:=6, Criteria1:="27049"
    Range("A7").Select
    ActiveWindow.ScrollRow = 1318
    Range("A7:G1318").Select
    Selection.Copy
    ActiveWindow.ScrollColumn = 42
    ActiveWindow.SmallScroll ToRight:=18
    ActiveWindow.SmallScroll Down:=42
    ActiveWindow.ScrollRow = 324
    ActiveWindow.SmallScroll Down:=-7
    ActiveWindow.SmallScroll ToRight:=18
    Range("AY51").Select
    ActiveSheet.Paste
    Range("AY48").Select
End Sub
Sub 小田原()
'
' 小田原 Macro
' マクロ記録日 : 2006/9/1  ユーザー名 : れいまま
'

'

    Selection.AutoFilter Field:=6, Criteria1:="27059"
    Range("A7").Select
    ActiveWindow.ScrollRow = 1318
    Range("A7:G1318").Select
    Selection.Copy
    ActiveWindow.ScrollColumn = 42
    ActiveWindow.SmallScroll ToRight:=18
    ActiveWindow.SmallScroll Down:=42
    ActiveWindow.ScrollRow = 324
    ActiveWindow.SmallScroll Down:=-7
    ActiveWindow.SmallScroll ToRight:=18
    Range("BG5").Select
    ActiveSheet.Paste
    Range("CH2").Select
End Sub
Sub 秦野()
'
' 秦野 Macro
' マクロ記録日 : 2006/9/1  ユーザー名 : れいまま
'

'

    Selection.AutoFilter Field:=6, Criteria1:="27069"
    Range("A7").Select
    ActiveWindow.ScrollRow = 1318
    Range("A7:G1318").Select
    Selection.Copy
    ActiveWindow.ScrollColumn = 42
    ActiveWindow.SmallScroll ToRight:=18
    ActiveWindow.SmallScroll Down:=42
    ActiveWindow.ScrollRow = 324
    ActiveWindow.SmallScroll Down:=-7
    ActiveWindow.SmallScroll ToRight:=18
    Range("BG51").Select
    ActiveSheet.Paste
    Range("BG48").Select
End Sub
Sub 伊勢原()
'
' 伊勢原 Macro
' マクロ記録日 : 2006/9/1  ユーザー名 : れいまま
'

'

    Selection.AutoFilter Field:=6, Criteria1:="27079"
    Range("A7").Select
    ActiveWindow.ScrollRow = 1318
    Range("A7:G1318").Select
    Selection.Copy
    ActiveWindow.ScrollColumn = 42
    ActiveWindow.SmallScroll ToRight:=18
    ActiveWindow.SmallScroll Down:=42
    ActiveWindow.ScrollRow = 324
    ActiveWindow.SmallScroll Down:=-7
    ActiveWindow.SmallScroll ToRight:=18
    Range("BP5").Select
    ActiveSheet.Paste
    Range("BP2").Select
End Sub
Sub 厚木()
'
' 厚木 Macro
' マクロ記録日 : 2006/9/1  ユーザー名 : れいまま
'

'

    Selection.AutoFilter Field:=6, Criteria1:="27099"
    Range("A7").Select
    ActiveWindow.ScrollRow = 1318
    Range("A7:G1318").Select
    Selection.Copy
    ActiveWindow.ScrollColumn = 42
    ActiveWindow.SmallScroll ToRight:=18
    ActiveWindow.SmallScroll Down:=42
    ActiveWindow.ScrollRow = 324
    ActiveWindow.SmallScroll Down:=-7
    ActiveWindow.SmallScroll ToRight:=18
    Range("BP51").Select
    ActiveSheet.Paste
    Range("BP48").Select
End Sub
Sub 茅ヶ崎()
'
' 茅ヶ崎 Macro
' マクロ記録日 : 2006/9/1  ユーザー名 : れいまま
'

'

    Selection.AutoFilter Field:=6, Criteria1:="27119"
    Range("A7").Select
    ActiveWindow.ScrollRow = 1318
    Range("A7:G1318").Select
    Selection.Copy
    ActiveWindow.ScrollColumn = 42
    ActiveWindow.SmallScroll ToRight:=18
    ActiveWindow.SmallScroll Down:=42
    ActiveWindow.ScrollRow = 324
    ActiveWindow.SmallScroll Down:=-7
    ActiveWindow.SmallScroll ToRight:=18
    Range("BY5").Select
    ActiveSheet.Paste
    Range("BY2").Select
End Sub
Sub 藤沢()
'
' 藤沢 Macro
' マクロ記録日 : 2006/9/1  ユーザー名 : れいまま
'

'

    Selection.AutoFilter Field:=6, Criteria1:="27139"
    Range("A7").Select
    ActiveWindow.ScrollRow = 1318
    Range("A7:G1318").Select
    Selection.Copy
    ActiveWindow.ScrollColumn = 42
    ActiveWindow.SmallScroll ToRight:=18
    ActiveWindow.SmallScroll Down:=42
    ActiveWindow.ScrollRow = 324
    ActiveWindow.SmallScroll Down:=-7
    ActiveWindow.SmallScroll ToRight:=18
    Range("BX51").Select
    ActiveSheet.Paste
    Range("BX48").Select
End Sub
Sub 湘南()
'
' 湘南 Macro
' マクロ記録日 : 2006/9/1  ユーザー名 : れいまま
'

'

    Selection.AutoFilter Field:=6, Criteria1:="27329"
    Range("A7").Select
    ActiveWindow.ScrollRow = 1318
    Range("A7:G1318").Select
    Selection.Copy
    ActiveWindow.ScrollColumn = 42
    ActiveWindow.SmallScroll ToRight:=18
    ActiveWindow.SmallScroll Down:=42
    ActiveWindow.ScrollRow = 324
    ActiveWindow.SmallScroll Down:=-7
    ActiveWindow.SmallScroll ToRight:=18
    Range("CG5").Select
    ActiveSheet.Paste
    Range("CH2").Select
End Sub
Sub 箱根()
'
' 箱根 Macro
' マクロ記録日 : 2006/9/1  ユーザー名 : れいまま
'

'

    Selection.AutoFilter Field:=6, Criteria1:="27419"
    Range("A7").Select
    ActiveWindow.ScrollRow = 1318
    Range("A7:G1318").Select
    Selection.Copy
    ActiveWindow.ScrollColumn = 42
    ActiveWindow.SmallScroll ToRight:=18
    ActiveWindow.SmallScroll Down:=42
    ActiveWindow.ScrollRow = 324
    ActiveWindow.SmallScroll Down:=-7
    ActiveWindow.SmallScroll ToRight:=18
    Range("CO5").Select
    ActiveSheet.Paste
    Range("CO2").Select
End Sub
Sub 相模大野()
'
' 相模大野 Macro
' マクロ記録日 : 2006/9/1  ユーザー名 : れいまま
'

'

    Selection.AutoFilter Field:=6, Criteria1:="27429"
    Range("A7").Select
    ActiveWindow.ScrollRow = 1318
    Range("A7:G1318").Select
    Selection.Copy
    ActiveWindow.ScrollColumn = 42
    ActiveWindow.SmallScroll ToRight:=18
    ActiveWindow.SmallScroll Down:=42
    ActiveWindow.ScrollRow = 324
    ActiveWindow.SmallScroll Down:=-7
    ActiveWindow.SmallScroll ToRight:=18
    Range("CO51").Select
    ActiveSheet.Paste
    Range("CO48").Select
End Sub

<説明>
何がしたいかというと
入力用場所があります。
同じシートの離れたところに
Vlook Upで使うデーターがあります。
個数をカウントして少ないもの順、多いもの順に表示する。(全体順位)
個数はデーターの横にcount ifの関数をいれて入力すると表示されるようにしました。
順位もrank関数を使って表示されるようにしました。

これを
全体でワースト・ベストのボタンをクリックして表示されるようにする。
オートフィルタでふるいにかけ、コピーして貼り付けるマクロや
並び替えるマクロを考えてみました。

また、
エリアごとに表示されるようにしたいのです。
エリアは沢山別れているので 入力規則?で選ぶようにしましたが
選んだら、そのエリアが表示されるようにマクロが組めませんでした。

もっと簡潔にマクロが出来れば・・・と
どなたか 良い方法を教えていただけないでしょうか?
うまくいえないですけど、伝わりますでしょうか?


 もし可能であれば、以下のramrunさんのアップローダにファイルをアップしてみては如何でしょうか。
http://ryusendo.no-ip.com/cgi-bin/upload/upload.html
 
 そうすれば回答者の方の手間がかなり省けて回答が付きやすいかと思います。
 
※個人名、固有の会社名等不都合のある部分(プロパティ内も含め)は消去しておいてください。

 (川野鮎太郎)


川野鮎太郎さん>ありがとうございます。これは どういうものなのでしょうか?
どうやったらアップロードできるのでしょうか?(れいまま)


 FILE Max 1024KB (*200Files)の右下の参照を押して、該当のブックを指定
 DelKey: を適当に入力(覚えておいてください)
 DelKey: の下のUploadボタンを押せばアップロードできます。

 (川野鮎太郎)

川野鮎太郎さん>ありがとうございます。ほとんど会社の内容だったので
あたらしく アップロード用に作り変えました。

実際関数やマクロを入力したほうが良かったのでしょうか?(れいまま)
もう一回関数やマクロを入力したものをアップしてみます


関数とマクロを入力したものをアップロードしてみました。
もっと簡単にできる方法があったら是非教えてください。

 わたしゃぁここんとこず〜っと忙しゅうてこんな事やっとるばやいやおまへんねんけど
 (o-)した手前、なんとか回答者諸兄の関心を惹くため敢えてたたき台になりますワ(笑
 例の所へアップしときましたんで一旦保存した上試してみてくらはい。

 それから、おそらく店舗別やと推測しますが、あれは規則性がありそうでありまへんし
 第一あんたはんがUPしてはるセルと重複するみたいなんで手ぇをつけてまへん。
 まぁなんですワ、鮎さんはじめオートフィルターの名手が揃うとりますんで、後は阪神
 の藤川投手みたいにきちっと締めくくってくれまっしゃろ。(笑
       あ、イソガシ(弥太郎)

弥太郎さん>
お仕事お疲れ様です。忙しいなかありがとうございます。
早速見てみます。
オートフィルタオプションというのを本をみて頑張ったのですが
なぜか表示されないのです・・・(れいまま)


弥太郎さん>すごい!VBA?VBE?の画面見ました。こういうふうに作れるなんて・・・尊敬です。
前回の誤入力リストを作ってみたのですが、あまりに非協力的なお店が多く
上司に報告しようと思い 今回の表を作成しようと思いました。だから内容が似ていますw
弥太郎様のファイル保存しました。早速明日 これを試してみます(嬉

私事ですが、9月半ばで短時間パートから社員へ契約変更することになりました。
皆様の暖かいご協力のおかげです。ありがとうございます。(れいまま)


 拝見するのが遅くなりました。
 アップしていただいたファイルには中のデータが入っていないので、何をどうなさりたいのか
 見当が付きません(^_^A;
 出来たら架空のデータでも結構ですので、ある程度入力したものをアップしていただけませんか。

 (川野鮎太郎)

架空のデーターを入力してみました。
いかがでしょうか?

(れいまま)


 こんな感じにしてみました。
http://ryusendo.no-ip.com/cgi-bin/upload/src/up0484.xls

 追加の横に並べる・・・・ってのが、意味が判りませんでした。(^_^A;

 横に並べるってこのようなことでしょうか。
http://ryusendo.no-ip.com/cgi-bin/upload/src/up0485.xls

 表中の数式もエラーが出ないように勝手に修正してます。(^_^A;

 (川野鮎太郎)

川野鮎太郎さん>
ありがとうございます。

Sub Macro1()
Range(Range("BM15"), Range("BS15").End(xlDown)).Clear

    Range("G2").Select
    Selection.AutoFilter
    Selection.AutoFilter
    Selection.AutoFilter Field:=7, Criteria1:="関東"
    Range("A3:G8").Select
    Selection.Copy
    Selection.AutoFilter Field:=7
    ActiveWindow.ScrollColumn = 54
    Range("BM15").Select
    ActiveSheet.Paste
End Sub
これだけで出来てしまうのですか???
すごい・・・
 
れいままのPCなぜかマクロが使えないのです。無効に設定されていますとコメントが(泣
実家にいって試してみます。

この伝票番号ごとに 何かしら皆さんやらかしています。
番号を問合せすると詳細が見れるのです。
だから、順位のほかにどの件がカウントされているのか詳細を表示したかったのです。
これが 横に並べるって意味です。
(各自で番号問い合わせて 確認してねってことです。)

オートフィルタオプションを初めは試したのですが
やっぱりうまく表示されなくて(謎

まだまだ勉強不足です。

修正もありがとうございます。
すごいです。こんなことも出来るのですね。(尊敬・・・

本当にありがとうございます。
とっても嬉しいです。
明日 実家のPCで確認します。(れいまま)


 マクロが実行できないということですが、EXCEL の
 「ツール」⇒「セキュリティ」⇒「マクロセキュリティ」⇒「セキュリティレベル」はどうなっていますか?

 「最高」「高」でしたら 「中」にすれば毎回警告は出ますが、実行は可能だと思います。
 「低」はおすすめしません。別原因でしたら、失礼しました。
 (Mook)


 >これだけで出来てしまうのですか???
 え!いえいえ・・・
 >Sub Macro1() ←Module1のコードはマクロの記録をやったときの残骸です・・・( ̄ー ̄;A アセアセ・・・

 Modele3の中身が実行用です。

 (川野鮎太郎)

弥太郎さん>

川野鮎太郎さん>

Mookさん>

できました!!今度はVBA?VBE?どちらか分からないですが、内容が読み取れます。
とってもうれしいです。ありがとうございます!
マクロもセキュリティが高になっていました。中にしたら作動しました。ありがとうございます。

教えていただいたものをアレンジして 表が完成しました☆(^▽^)/

出来たら欲が出てきましたw
全体エリアを円グラフ表示してみます。
どのエリアが多いのか図で一目瞭然♪
パソコン作業が最近楽しいです。(これは何とか分かりそうですw)

全部解決しました☆シートを13枚作って月ごとに入力し
集計して 円グラフと折れ線グラフで推移を表示できるようになりました。
ありがとうございました(れいまま)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.