• 締切済み

エクセル VBA ワークシート作成?

仕入単価未決とゆうエクセルファイルがドライブDにあり このファイルを開いて元データーファイルとする。 このファイルのA列にはコード        B列には仕入先名        C列には品番        D列には品名 などが入力されております。 このファイルを仕入単価決定書とゆう名前のファイルの 決定書原紙とゆうワークシートに作成したフォーム内の テキストボックス1で仕入単価未決のファイルを選択し コマンドボタンをクリックしたら コード=仕入先名(B列)でワークシートを作成し 各仕入先(コード)ごとに各データーが入力されるように したいのですが、どのように行えばいいでしょうか? 文章は長いですが、説明が不足しておりましたら 指摘の程宜しくお願いいたします。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 前回の続きかしら?でもなさそうですね。 ここのカテゴリは、他の学習のカテゴリとは違いますから、製作依頼が必ずしも不可ではないのですが、少し、その辺りの説明も終わりでさせていただきます。 それ質問は、 問題はここら当たりですね。 >ワークシートに作成した >フォーム内の >テキストボックス1* >で仕入単価未決のファイルを選択し *フォームに「テキストボックス」はありませんね。あるのは、コントロールツールのテキストボックスと、図形描画のテキストボックスです。 それに、テキストボックスに、その名称を書き込むって、ちょっとヘンですね。ComboBox とか、ListBox とかではありませんか? >コード=仕入先名(B列) -------------------------------------- 上記のマクロ等は、全部「仕入単価決定書」にあるということですね。そして、データだけは、D:\仕入単価未決.xls ということですね。つまり、ふたつのブックには、表示上のデータの受け渡しが存在するということですね。 私としては、今の状態では、回答の失敗をみるのは必至のような気がします。#2さんが書かれた後で、私のこういう書き込みは、マナーがあまり良くないですが、私には、ご質問からイメージが出てこないのです。 私個人でも、掲示板でのサポートというのは、そのコードの長さよりも、基本的に、コードの構造がひとつのブック、なるべく、ひとつのモジュール内で収まるレベルのものです。それ以上のものを、回答者が、掲示板で構築するのは、ほとんど難しいのです。掲示板では、その中の一部しか教えられないのです。 製作依頼を断るという本当の意味は、思い込みで書くと失敗するからです。私には、その内容は、システムに思えてくるのです。そういうのは、掲示板では、手がつけられないのです。

77TAKETAKA
質問者

お礼

すみません。 質問のしかたがあまりにもおかしかったです。 反省しております。 やれるところまでやってみます。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

仕入単価未決シートの各行データを仕入れ先名(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で仕入単価未決のファイルを選択し >コマンドボタンをクリックしたら この部分はご自身で付加してください。仕様がよく理解できないし、丸投げにもなるのでそこまでは書きません。

77TAKETAKA
質問者

お礼

すみません。 質問の仕方がおかしかったです。 上記、処理を参考にさせていただきます。

  • uro_tan
  • ベストアンサー率15% (6/40)
回答No.1

まずあなたの作ったマクロを提示して下さい。そうでなければ作成依頼と思われても仕方ありませんよ? どの部分が分からないのでしょうか。それが分かりません。 ・[作成依頼目的]占いや翻訳、文章作成等で、疑問点を明記せずに回答者に作業を求める質問。

77TAKETAKA
質問者

お礼

質問の仕方が間違っていました。 作成依頼と思われても仕方が無いです。 すみません。

関連するQ&A

専門家に質問してみよう