- 締切済み
エクセル VBA ワークシート作成?
仕入単価未決とゆうエクセルファイルがドライブDにあり このファイルを開いて元データーファイルとする。 このファイルのA列にはコード B列には仕入先名 C列には品番 D列には品名 などが入力されております。 このファイルを仕入単価決定書とゆう名前のファイルの 決定書原紙とゆうワークシートに作成したフォーム内の テキストボックス1で仕入単価未決のファイルを選択し コマンドボタンをクリックしたら コード=仕入先名(B列)でワークシートを作成し 各仕入先(コード)ごとに各データーが入力されるように したいのですが、どのように行えばいいでしょうか? 文章は長いですが、説明が不足しておりましたら 指摘の程宜しくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 前回の続きかしら?でもなさそうですね。 ここのカテゴリは、他の学習のカテゴリとは違いますから、製作依頼が必ずしも不可ではないのですが、少し、その辺りの説明も終わりでさせていただきます。 それ質問は、 問題はここら当たりですね。 >ワークシートに作成した >フォーム内の >テキストボックス1* >で仕入単価未決のファイルを選択し *フォームに「テキストボックス」はありませんね。あるのは、コントロールツールのテキストボックスと、図形描画のテキストボックスです。 それに、テキストボックスに、その名称を書き込むって、ちょっとヘンですね。ComboBox とか、ListBox とかではありませんか? >コード=仕入先名(B列) -------------------------------------- 上記のマクロ等は、全部「仕入単価決定書」にあるということですね。そして、データだけは、D:\仕入単価未決.xls ということですね。つまり、ふたつのブックには、表示上のデータの受け渡しが存在するということですね。 私としては、今の状態では、回答の失敗をみるのは必至のような気がします。#2さんが書かれた後で、私のこういう書き込みは、マナーがあまり良くないですが、私には、ご質問からイメージが出てこないのです。 私個人でも、掲示板でのサポートというのは、そのコードの長さよりも、基本的に、コードの構造がひとつのブック、なるべく、ひとつのモジュール内で収まるレベルのものです。それ以上のものを、回答者が、掲示板で構築するのは、ほとんど難しいのです。掲示板では、その中の一部しか教えられないのです。 製作依頼を断るという本当の意味は、思い込みで書くと失敗するからです。私には、その内容は、システムに思えてくるのです。そういうのは、掲示板では、手がつけられないのです。
- zap35
- ベストアンサー率44% (1383/3079)
仕入単価未決シートの各行データを仕入れ先名(B列)でソートし、仕入れ先単位にシートを作成して貼り付けるマクロです。仕入単価未決シートの1行目はタイトル行であると想定しています。 Sub Macro1() Const ws As String = "仕入単価未決" '実際のシート名にする Dim frRow, toRow, idx, lastR As Long Dim actWs As Worksheet Sheets(ws).Copy after:=Sheets(ws) Set actWs = ActiveSheet With actWs .Range("A1").CurrentRegion.Sort _ Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess frRow = 2 toRow = 2 lastR = .Range("A65536").End(xlUp).Row For idx = 3 To lastR If .Cells(idx, "A") <> .Cells(frRow, "A") Then Worksheets.Add after:=ActiveSheet ActiveSheet.Name = .Cells(frRow, "B") .Rows(1).Copy Range("A1") Range(.Rows(frRow), .Rows(toRow)).Copy Range("A2") frRow = idx toRow = idx Else toRow = idx End If Next idx Worksheets.Add after:=ActiveSheet ActiveSheet.Name = .Cells(frRow, "B") .Rows(1).Copy Range("A1") Range(.Rows(frRow), .Rows(toRow)).Copy Range("A2") End With Application.DisplayAlerts = False actWs.Delete Application.DisplayAlerts = True End Sub >テキストボックス1で仕入単価未決のファイルを選択し >コマンドボタンをクリックしたら この部分はご自身で付加してください。仕様がよく理解できないし、丸投げにもなるのでそこまでは書きません。
お礼
すみません。 質問の仕方がおかしかったです。 上記、処理を参考にさせていただきます。
- uro_tan
- ベストアンサー率15% (6/40)
まずあなたの作ったマクロを提示して下さい。そうでなければ作成依頼と思われても仕方ありませんよ? どの部分が分からないのでしょうか。それが分かりません。 ・[作成依頼目的]占いや翻訳、文章作成等で、疑問点を明記せずに回答者に作業を求める質問。
お礼
質問の仕方が間違っていました。 作成依頼と思われても仕方が無いです。 すみません。
お礼
すみません。 質問のしかたがあまりにもおかしかったです。 反省しております。 やれるところまでやってみます。