• ベストアンサー

エクセルVBAで、テキストボックスにセルの値を入れる

nishi6の回答

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.10

>問題は、OKWEBが漏れていた事と・・・・ 少し誤解があるようなので説明します。「OKWEB_Data.xls」は私が作った勝手なファイル名ですのでrurucomさんが作られたファイル名をこの名前にする必要はありません。逆にマクロ内の「OKWEB_Data.xls」をrurucomさん使用のファイル名に変えてくださいという意味でした。それはさておき(動いたということで) >=Hantei(Row())をE列に設定をデータ行数に合わせて自動的に、返してくれる方法はありませんか に対するア)の方法ですが、判定条件さえ確実ならデータシートの方に手を加えることは必要ないと思います。行を指定したときに、パターンを判定すれば済むことで、下記の修正を加えれば大丈夫でしょう。 ユーザー定義関数を少し変えます。標準モジュールにあることが必要です。2行を追加します。 Hantei = 5 Case Else '***追加*** パターンに合わない場合、データが無くなった場合 Hantei = 0 '***追加*** End Select #4に書いたモジュールを少し変えます。 st = .Offset(tensouNo, pattIdx - 1): If st = 0 Then Exit Sub 'パターンを調べる    ↓ st = Hantei(tensouNo): If st = 0 Then Exit Sub 'パターンを調べる 都合3箇所の修正です。  1)どこかの印刷用シートの<B5に印刷行を入力>(未入力なら1)  2)<ボタン1を押す>  3)パターンを判定して該当のシートを表示、データを2行目に転送  4)<テキストボックスの微調整>  5)<印刷ボタンを押す。>シートの文字を見えなくして印刷。  6)印刷が終わればシートの文字を可視に  7)繰り返し   の手順になるはずです。< >は人の操作です。 テスト用に作ったシートを消してしまいました。想像だけで書いていますので不具合があれば教えてください。

rurucom
質問者

補足

nishi6さん!ほんとに何度もすみません! 私は、どうやら勘違いしていたような・・・ Public Function Hantei(rowNo As Long) Application.Volatile Select Case True Case Range("A" & rowNo) <> "" And Range("B" & rowNo) <> "" Hantei = 1 ↓ここからここまで Case Range("A" & rowNo) <> "" And Range("B" & rowNo) <> "" And Range("C" & rowNo) <> "" Hantei = 5 Case Else Hantei = 0 End Select End Function 上記のコードをデータシートのモジュールに書いていたんですが、操作する側のファイル(回答4を書いているファイル)に書かないといけないんですよね??? それしたら、どこに書いて良いか分からなくなってきたのですが・・・ ほんっ・・とに何度もすみません。どこに書いたら良いか教えてください。

関連するQ&A

  • エクセルVBAで、テキストボックスに値を入れる(3)

    質問がバラバラになってしまってすみません! エクセルVBAで、テキストボックスに値を入れる(1)の 回答13で、 データシートの何行目~何行目までを印刷させる方法(Sheet7にボタン) をさせるには、どうしたら良いでしょうか?宜しくお願いします。 前回のURL:http://oshiete1.goo.ne.jp/kotaeru.php3?qid=79173       http://oshiete1.goo.ne.jp/kotaeru.php3?qid=85389

  • エクセルVBAでテキストボックスの値の取得と変更について

    エクセルのVBAを使ってシート上のテキストボックスのテキストを取得・変更するマクロを作成したいと思っていますがうまく行きませんので、お知恵を拝借したいとおもいます。 環境:WindowsXPでオフィス2002 状況: エクセルブックa.xlsのシートに「コントロールツールボックス」のテキストボックスを配置(オブジェクト名はTEXTBOX_C) エクセルブックb.xlsにコードを書き、a.xlsのTEXTBOX_CのプロパティのValueかTextを取りだしたい 試した事: コントロールを配置したシートに次のマクロ TEXTBOX_C.Text = "これはコントロールのテキストボックス" を書くとテキストボックスに文字を入れ込めますが、別のエクセルブックからだと上手く行きません。 また、オートシェイプのテキストボックスの場合は簡単に出きるのですが、コントロールツールボックスではどうしても上手く行きませんので、対象法などご存知の方いらっしゃいましたら教えてください

  • テキストボックスの大きさを、基準の大きさに戻す(エクセルVBA)

    図形のテキストボックスの大きさを取得して、その値を各テキストボックスの基準の大きさとして記録しておき、テキストボックスの大きさをマウスでドラッグして大きさを変えた後、ボタン1つでもとの大きさに戻したいのですが、どのようにすればよいでしょうか? 1)図形のテキストボックス、大きさの取得方法は? 2)基準の大きさと記録する方法は? 3)記録された大きさに戻すには?(シート上に配置されたボタンで実行) ※ 複数のシートに複数のテキストボックスがあります。 ※ シート毎にセットします。(シート毎にテキストボックスのサイズが違う為) ※ 現在、各テキストボックスには、基準位置がセットしてあり、ボタンで基準位置へ戻る仕組みが組まれています。(これをそのままにして・・・) ※ エクセル97と2000で使えるようにします。(作成は97) 宜しくお願い致します。

  • エクセル/テキストボックス、セル枠の表示が遅れる?

    既に入っているセルの値などシート内のデータに変化を加えず、下の作業を行った時、セルの値に遅れて、テキストボックスとセルの枠線が表示されているように見えます。遅れるというよりも、瞬間ではありますが、テキストボックスと枠線が消えてから再表示されているように見えます。これはなぜでしょうか?この現象のため、チラついて見えるのですが、教えてください。よろしくお願いします。  同一ブック内で他シートから切替えて表示した時  最小化から最大化して表示した時  他ソフトなどの画面が前面にあり、それを閉じた時 作成内容/商品別(縦)・月別(横)の売上表を作成。      縦項目数:20、横項目数:15      数式なしで全てのセルは値のみ入力 個人的な美観が問題点?/ ・商品名や月名を、セルではなく、テキストボックスを  使用している。セルのフォントサイズが14とやや大き  めで太字である。

  • excelで勝手にテキストボックスが出来ている

    excel2000で知らない間に同じセル上にテキストボックスが多数(100以上)出来てしまっています。 シートは、在庫管理をしているもので、基本的には、キー入力なのですが、他のブックのデータを行ごと貼り付けている箇所もあります。 ただ、在庫管理のシートも、貼り付ける際のデータ元シートもテキストボックスを使用しているわけではなく、なぜか一箇所に同じテキストボックスが155個とか出来てしまっています。 何か考えられる原因はありますか? 現在は、気づくと「あっココにもあった」という感じで、数箇所、数百個のテキストボックスをいちいち消しています。

  • テキストボックスを各ページに表示させたい

    wordのテキストボックスですが、ページ番号のように、 各ページに全く同じ配置で表示させるにはどうしたらいいでしょうか? ある申請用紙のテンプレートとして使いたいんですが、 位置が少しずれると元本の文字に被ってしまいますし、 ページごとに微調整したりするのも大変なので困っています。 宜しくお願いします。

  • テキストボックスの移動(2)

    前回、質問しましたが、回答いただいたプログラムで、別のシートから複数のシートのテキストボックスの移動を移動させたいのですが・・・ たとえば、Sheet1・Sheet2・Sheet3にテキストボックス1が配置してあって、A位置とB位置に動くようにしてあります。 前回のプログラムでは、各シートに位置を指定するボタンが配置してありましたが、このボタンをSheet5に配置して、Sheet1・Sheet2・Sheet3の各テキストボックス1が一斉に動くようにしたいのですがよろしくお願いします。 前回のURL → http://oshiete1.goo.ne.jp/kotaeru.php3?q=85846

  • コンボボックスからテキストボックスに連続して値を出したい

    エクセルVBAのユーザーフォームで、コンボボックスで選択したものをコマンドボタンを押すことで、同じフォーム上のテキストボックスに表示するところまではできたのですが、同じテキストボックスに追記する形でコンボボックスで選択したものを表示したいのですが、可能でしょうか。テキストボックスは複数行表示できるようにプロパティのMultiLineはTlueに設定することはしたのですが、2回目以降コンボボックスで選択した後コマンドボタンを押してもそのまま上書きするようなコードしかわかりません。 テキストボックスに、20回目まで選択項目を追加表示し、最後にはエクセルのシートにそのデータをコピーしたいのです。果たして、そのようなことは可能でしょうか。可能であればどのように記述すればよいのでしょうか。ぜひ諸先輩方のお知恵をお貸しください。よろしくお願いします。

  • テキストボックスを消すVBA

    ボタンを押すことでテキストボックスが消えるようにしたいのですが、 ボタンは、2つ 「ONとOFF」 1~3のSheetにあるテキストボックスをSheet5に配置した「ONとOFF」のボタンで操作するようにしたいのですがよろしくお願いします。

  • テキストボックスの位置

     決まった枠組みの中にテキストボックスを入れて、文字をいれて行きたいのですが、テキストボックスの位置をうまく配置できません。ワードのルーラーもいまいちわかりにくいです。 テキストボックスの位置を用紙の上から何センチとかに設定できないでしょうか?