パソコンQ&Aの新着情報等を配信します
何でもパソコン110番とは 購読解除
掲載数8,357件
 TOP > Excel関連 > 続々 基の表からマクロでソートし表を作り替えたい

質問No 1423 続々 基の表からマクロでソートし表を作り替えたい

投稿者
兵庫県 Mikeさん
投稿日時2008年3月19日0時0分
OSWindowsXP
質問分類Excel関連
質問Excel質問1701と1711で回答いただきましたMikeです。
大阪totoさん回答ありがとうございました。
totoさんに教えて頂いた通りいろいろとやってみました。
その結果ほぼイメージ通りにできたのですが、どうしてもうまくいかない所が
あります。
いつも聞くばかりで恐縮ですが、ご教授願います。

元の表の構成を書きます。

A列   B列   C〜H列                 I列
空白  課題名  はあまり関係ないデータが入っています。 担当名(8人分)

J列                   K〜U列
はあまり関係ないデータが入っています。 スケジュール

V列
「空白」または「E」が入っています。

1〜9行まではデータはありません。 表の名前があります。
10、11行に列のタイトルが入ります。

例:
10行 計画  等
11行 日程  等
12行は空欄です。(現在はソート1・・・・22と仮でセルを埋めてます。
マクロがうまくいかなかったため)
13行から必要なデータが入っています。

下記が、totoさんに教えて頂いたマクロをアレンジしました物と質問を入れて
います。

Sub Excel担当スケジュール()

Range("I11").Select

myString1 = InputBox(PROMPT:="検索する文字列を入力してください")
Selection.AutoFilter
Selection.AutoFilter Field:=8, Criteria1:=myString1
Selection.AutoFilter Field:=21, Criteria1:=""

Workbooks.Open _
Filename:="C:\Documents and Settings\All Users\Documents\" _
& myString1 & ".xls"

Windows("テスト20080206.xls").Activate
ActiveWindow.SmallScroll Down:=9

↑ マクロの記録で作ったのですが、上の「ActiveWindow.SmallScroll Down:=9」
式?は必要なのでしょうか?

以降の式も同様にマクロの記録でしたのですが上記の様な式があるものと無い物
があります。
又、必要ならば、なぜ必要なのか教えてください。

Range("B10:B2000").Select

↑ 上記ですが仮でB10〜B2000としていますが実際には担当毎に行数は異なり
ます。
どうすれば、必要な行数だけ選択出来るようになるのでしょうか?

Range("B810").Activate

↑ マクロの記録で作ったのですが、上の式は必要なのでしょうか?
(無くても問題ないように思うのですが。ただの疑問です)

Application.CutCopyMode = False
Selection.Copy
Windows("テスト.xls").Activate

↑ ここですが " & myString1 & ".xls" を入れたのですがエラーになります。
上の「myString1 = InputBox(PROMPT:="検索する文字列を入力してください")」
でテストと入れてオートフィルターをかけてたます。
上記でオートフィルターをかけた担当名のXLSを開いてもテスト20080206.xls
Bookに書き込みをしようとしてしまいます。

myString2 = InputBox(PROMPT:="課題名を挿入するセルを入力してください")

Range(myString2).Select

ActiveSheet.Paste

Windows("テスト20080206.xls").Activate

ActiveWindow.SmallScroll Down:=6

Range("D10:D2000").Select

Range("D810").Activate

Application.CutCopyMode = False

Selection.Copy

Windows("テスト.xls").Activate

myString3 = InputBox(PROMPT:="課題種類を挿入するセルを入力してください")

Range(myString3).Select

ActiveSheet.Paste

Windows("テスト20080206.xls").Activate

Range("J10:U810").Select

Range("J810").Activate

Application.CutCopyMode = False

Selection.Copy

Windows("テスト.xls").Activate

myString4 = InputBox(PROMPT:="スケジュールを挿入するセルを入力して
ください")

Range(myString4).Select

ActiveSheet.Paste

Cells.Select

Cells.EntireColumn.AutoFit

Range("A1").Select

End Sub
アクセス数 3,081

見解は「投稿日時」の順に並んでいます(ボタンで質問と見解の表示が変わります)
 
この質問の見解受付は終了しております。


※このページはリンクフリーです。

どうぞ「ツイッター」「Facebook」や「ブログ」でご紹介ください。

詳しくはこちら

株式会社モブリーブ |かんたんアンケート |かんたんアンケートPC版|何でもパソコン110番PC版

 
運営情報  利用規約  プライバシーポリシー
Copyright(C)2000-2018 nan-paso.jp (当HPおよびメルマガ上に掲載された記事を許可なく転載又は引用することを禁じます)