- ベストアンサー
Excelで契約一覧の表から必要な列を抜き出すマクロを作成したい
- 電話回線の仕事をしているが、他のチームから送られてきた請求書がどれか分からず困っている。社名を宛名に書くとセキュリティ上の問題があるため、工番をつけて分別する方法を模索している。Excel2003で作成された契約一覧の表から必要な列を抜き出し、別チームに渡すためのマクロを作成する方法が知りたい。
- Excelで作成された契約一覧の表から必要な列を抜き出し、別チームに渡すためのマクロを作成したい。請求書の宛名に社名を書くとセキュリティ上の問題があるため、工番をつけて分別するアイディアを考えている。
- 電話回線の仕事をしており、請求書の宛名に社名を書くことがセキュリティ上の問題となっている。そこで、契約一覧の表から必要な列を抜き出し、別チームに渡すためのマクロを作成しようとしている。Excel2003で作成された表を対象にしたマクロの作成方法を知りたい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
例えばあるシートに表があるとして1行目には項目名が有るとします。その中からお望みの項目名についてのデータを別のシートに抜き出して表示したいとのことでしたら次のようなマクロで良いでしょう。 Sub 項目の選択とコピー() Dim WS1 As String Dim WS2 As String Dim Coln1 As Integer Dim Coln2 As Integer Dim Inp As String Dim Row1 As Integer WS1 = ActiveSheet.Name WS2 = InputBox(Prompt:="コピーをするにあたって初めにコピー先のシート名を入力してください") Do Inp = InputBox(Prompt:="選択する項目名を記入してください。選択する項目を終了する場合には空のままクリックしてください") If Inp = "" Then Worksheets(WS1).Activate Range("A1").Select Exit Sub End If If Worksheets(WS2).Range("A1") = "" Then Coln2 = 1 Else Coln2 = Worksheets(WS2).Cells(1, 256).End(xlToLeft).Column + 1 End If Worksheets(WS1).Activate Range("A1").Select If WorksheetFunction.CountIf(Worksheets(WS1).Range("A1:XX1"), Inp) > 0 Then Coln1 = WorksheetFunction.Match(Inp, Worksheets(WS1).Range("A1:XX1"), 0) Row1 = Cells(65536, Coln1).End(xlUp).Row Range(Cells(1, Coln1), Cells(Row1, Coln1)).Copy Destination:=Worksheets(WS2).Cells(1, Coln2) Application.CutCopyMode = False Range("A1").Select Else MsgBox "入力した項目名は存在しません。入力をやり直してください。" End If Loop End Sub
その他の回答 (2)
- KURUMITO
- ベストアンサー率42% (1835/4283)
回答No1,2です。 元のシートでは1行目に項目名が記載されていることが必要ですし、その項目名がマクロで入力するときの項目名と一致していることが必要です。 それでも項目がないとのメッセージが出るのでしたら元のシートの項目名について一度手書きで入力してみてください。項目名の前後にスペースなどがついている場合になどは一致しないことになります。
- KURUMITO
- ベストアンサー率42% (1835/4283)
契約一覧の表はどのようになっているのでしょう。日付などがはいいてると思うのですが。必要な数行と言っておりますがどの項目が必要で抜き出す条件はどのようなものでしょう。。マクロを組むまでもなく関数で十分対応ができる内容と思います。
補足
申し訳ありません。 リンクでは都合が悪いので、やむ得ず別のファイルを生成したいため、 マクロが必要と考えております。 VBは全く分からない訳ではありませんので、 とりあえずある列を更新された最終行まで転記し、 次の転記する列を指定して また更新最終行まで転記を繰り返すというマクロが欲しいです。 質問後もちょうどいいマクロを探していますが見つからず、 自作の勉強HPも同時に捜索中ですが、 一人では時間がかかるのでご教示いただければ幸いです。
補足
作成ありがとうございます。 同BOOKに”請求”シートを作成し、タイトルはA10からAP10まで各10行になっていたのでカスタマイズしましたが、 "入力した項目名は存在しません。入力をやり直してください。"が出てしまします。 いろいろ試してみましたが、コピーされません。 どうしたらよろしいでしょう?