• 締切済み

VBAについて

すいません、VBA初心者です。 以下の事をやる時にはどうしたらいいか教えて頂きたく思っています。 現在、社内でカードリーダーを使った荷物の受け取り管理を行えるVBAを構築しようと奮闘しています。 仕組みは簡単で、受け取り番号を指定入力して、受取人が自分のIDをカードリーダーにかざし、受取人情報取得し、確定ボタンを押すと授受リストへコピペされるというものです。 現在、VBAで入力フォームを作成しており、受け取り番号入力欄を3つあり、デフォルト値(1233-00)が設定されています。 1) 1233-00 (Text Box1) 2) 1233-00 (Text Box2) 3) 1233-00 (Text Box3) ここで 1〜3の入力された受け取り番号が授受リストに存在しているかどうかの検索をかけて検証しながら作業完了させたいのですが、、、 1にしか受け取り番号が入力されていない場合(他はデフォルト値のままを意味)は1の数字のみを授受リストに検索をかけてコピペ。 1と2のみにしか受け取り番号が入力されていない場合は1と2の数字のみを授受リストに検索をかけてコピペ。 1〜3すべてに受け取り番号が入力されている場合はすべてを授受リストに検索をかけてコピペ。 これを実現するにはどのようなコードを組んだらいいのでしょうか? 教えて下さい

みんなの回答

回答No.3

すみません、文書が煩雑で要件を読み取れません。 しかし「コピペ」という言葉が散見されます。 これをまともにVBAでコピーアンドペーストするのだけは 避けてください。 あるセルの値からコピーしたいセルの値に直接代入して下さい。 例:Thisworkbook.worksheets(1).cells(1,1).value = Thisworkbook.worksheets(2).cells(2,3).value というように、書いてください。 人間が操作することを、そのままプログラムにさせるのは無駄です。 FreeBSDから書いており、手元にofficeが無いので、 記憶を頼りに書いていますので、間違ってたらすみません。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

> 受取人が自分のIDをカードリーダーにかざし、受取人情報取得し この部分はどうするのか分かりませんが > 受け取り番号を指定入力して ということなので 3が新規入力されて1と2が未入力の場合とかどうするのか不明なので以下の方法で試してみて下さい。 1,2,3無関係で新規入力されている受け取り番号を対象にするとした場合 (質問以外の入力がされることが無い場合も) Private Sub CommandButton1_Click() Dim mArray As Variant Dim i As Long mArray = Array(Me.TextBox1.Value, Me.TextBox2.Value, Me.TextBox3.Value) For i = 0 To UBound(mArray) If mArray(i) <> "1233-00" Then '授受リストに検索をかけてコピペのコード End If Next End Sub 質問の状態以外は認めないとした場合(たとえば1,3が入力されていても1だけ検索) Private Sub CommandButton1_Click() Dim mArray As Variant Dim i As Long mArray = Array(Me.TextBox1.Value, Me.TextBox2.Value, Me.TextBox3.Value) For i = 0 To UBound(mArray) If mArray(i) <> "1233-00" Then '授受リストに検索をかけてコピペのコード If i = UBound(mArray) Then Exit For ElseIf mArray(i + 1) = "1233-00" Then Exit For End If End If Next End Sub

  • kon555
  • ベストアンサー率51% (1842/3559)
回答No.1

 お望みの回答ではないと思いますが、アドバイスとして一つ。  質問文を読む限り、どうもかなりガッチリと社内の業務の一環として運用し、かつ複数名が使用するモノを想定しているように見受けられますが、それを「初心者です。どのようなコードを組んだらいいのでしょうか?」という技量で作るのはやめておいた方がいいです。  想定外の入力でエラーが出る、業務のやり方が変わる、何か新たな要望が出る、そうした事態の際にどうしようもなくなります。  自分1人で使うちょっとした便利ツールならともかく、業務に組み込み多人数で使用する『システム』には相応の責任が伴います。  きちんと予算をとり、既存のソフトやシステムを購入するか、適したモノがなければシステム屋さんに外注すべきです。結局それが一番安く済みます。  もしこの件が、貴方も誰か上役にスキルオーバーの指示をされているなら「私には無理です」と断りなさい。

関連するQ&A