• 締切済み

VBAの使い方を教えて下さい

説明が下手ですすみません。 下には条件を書くので教えていただけると幸いです。 エクセル VBA ユーザーフォーム上で、距離のからまででオートフィルタがボタン一発で出来るようにしたいです。 【前提条件】 Sheet1のA列に、0mから1000mまでの距離のデータがあります。 その他列にはその場所に何々があるなどのデータがあります。 【やりたいこと】 ユーザーフォームに何メーターから何メーターまでと数字を入れて、ボタンを押せばその間のデータが出せるようにしたいです。 そのコードをお解りでしたら教えてください。 よろしくお願い致します。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

丸投げ的質問だな。 シート名、データ範囲、条件などは自分で修正すること。 ユーザーフォームを挿入。 テキストボックスを2つ貼り付け。 コマンドボタンを1つ貼り付け。 以上は手操作で行う。 そのコマンドボタンのクリックイベントに Private Sub CommandButton1_Click() kara = Val(UserForm1.TextBox1.Text) MsgBox kara made = Val(UserForm1.TextBox2.Text) MsgBox made Worksheets("Sheet1").Range("A:B").AutoFilter 1, ">=" & kara, xlAnd, "<=" & made End Sub == 実行-Sub/ユーザーフォームの実行をクリックで実行。 テキストボックスに 例えば10、もう一つのテキストボックスに40と入れる コマンドボタンをクリックで、指定した条件(何々から何々まで)で、Filterが実行される。 Googleで「vba filter 複数条件」などで照会すれば記事が出るよ。 https://daitaideit.com/vba-autofilter-multi/ ーー Msgbox の行は、納得したらコードから削除。 結果を別シートにコピーしたい場合は、Googleで照会して勉強のこと。

ppiko0154
質問者

お礼

ありがとうございます

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel VBAでオートフィルタで抽出したデータの一部だけ貼り付けるには

    いつもこのコーナーでは皆様にお世話になっております。以下のVBAマクロが組める方ご教示ください。 Sheet2にあるデータに複数条件でソートをかけ、ある数字(1から18まで)を入れたら、オートフィルタでE列のデータの選択部をSheet1のある部分に1行貼り付けるという作業です。以下のInputBoxに数字を入れるところからです。 (ソート後、どの数字を入れるか判断) ↓ InputBoxにある数字"○"(1から18まで)を入れる ↓ オートフィルタE列「"○-"で始まる」or「"-○"で終わる」 ↓ 抽出されたデータのE列(1列だけ)のデータ(上から17個分)を選択 ↓ 選択部をコピー ↓ Sheet1を選択。Sheet1の"K5"セルに行列を入れ替えて貼り付け という流れなのですが・・・ わかる方教えてください。よろしくお願いします。

  • VBAでオートフィルターの再検索

    現在VBAでオートフィルターで絞ってある条件を一度解除してもう一度同じ条件で検索をしたいと思っていますが、出来ず困っています。 内容としては たとえば、A1に"数字"、A2に"2"、A3に"3"とあった場合、A1でオートフィルターをかけ、絞り込みます。(何の条件で絞り込んだかは不明) この状態から、VBAを使います。 VBAで「一度オートフィルターを解除し、再度オートフィルターで同じ条件で絞る」という作業をしたいのですが、解除はできますが、同じ条件で再度絞り込みができません。 (たぶんCriterialの値を取得するのでしょうか?それもやり方がわかりません。) 何をしたいのか目的はと聞かれると、説明するだけでもややこしくなってしまいますので、簡単にやりたい作業だけかかせていただきました。 こんな作業は出来ますでしょうか? 教えていただけたら、幸いでございます。 意味が分からなければ、また説明させていただきます。  

  • エクセル オートフィルタで摘出したデータだけをカウントしたい vba

    エクセルでオートフィルタして摘出したデータをカウントしたいのですその結果をVBAのメッセージボックスで表示させてたいです。 オートフィルタについては、シート上で自ら条件を出しますので、ただカウントだけしたいです。 カウントさせるセルはA列の10番から110番です。 データは数値です お忙しいところどなたかご教授ください

  • VBAではなく、マクロでのフィルターのかけ方を教え

    accessのVBAではなく、マクロでのフィルターのかけ方を教えてください。 テーブル1には フィールド名:moji データ:テキスト型 文字列1 文字列2 ・ ・ ・ というデータがあります。 テーブル1を基にしたフォームには 画像のように、 コントロールソースにmojiを紐付けたテキストボックスを配置しました。 その際、マクロを実行して「文字列1」を抽出するフィルタの実行をしたいのですが マクロの作り方がわかりません。 マクロのアクションは「フィルタの実行」にしたのですが フィルタ名には何を入れればいいのでしょうか? とりあえずtestと入れました。 次に、Where条件式には [Forms]![フォーム1]![moji]="文字列1" といれました。 この時点ではエラーにならないのですが フォームを開いて、マクロ1を実行すると 「このウィンドウでは"ApplyFilter/フィルタの実行"アクションを実行できません。」 となってしまいます。 マクロの作り方を教えてください。

  • ExcelでVBAにおけるシートの保護に関して・・・

    ユーザーフォームで入力した値がシートのセルに入力 されるというものを作っています。 そこで、シートの列挿入及び列削除を禁止しておきたい のですが、そのままシートを保護してしまうとユーザー フォームが開かなくなるので、VBAにてユーザーフォーム が開く前に保護を解除し、閉じるときに再び保護をかける ようにしました。 ただ、この方法だと、シート保護の項目全て(初期設定) に対して保護されてしまうため、例えば行挿入や行削除、 あるいはオートフィルタや並べ替えといったことまでが 出来なくなってしまいます。(手動で保護を解除すれば できるのですが、一々解除しなければならないのは面倒 なので何とか避けたいのです。) 禁止したいのは、列削除及び列挿入のみなのですが、 他によい方法はないでしょうか。

  • Excel VBAでデータを自動処理したい

    Excelで大量のデータ処理をしなくてはならないのですが、以下の処理をExcel VBAで自動処理できないでしょうか? どなたかお知恵をお貸しください。 (1)A、B、C列からなるリストがあります。A,B列にはそれぞれオートフィルタが設定してあり、C列は空白です。A列、B列にそれぞれ条件を設定し、抽出したデータのC列(空白)に特定のデータを入力します。A列、B列2つの条件の組み合わせが100通りくらいあり、現在手動でオートフィルタを設定し、C列にデータを入力しております。例えばA,B列の条件の組み合わせと、それに対応するC列に入力するデータを表にしたテーブルを別に作り、A,B列の条件を自動に設定して、抽出し、C列にデータを自動に入力することを、テーブルの一番上の行から最後の行まで繰り返す、というようなことをVBAでExcelにしてもらいたいのです。自分でちゃんと勉強し、調べて、それでも分からなかったらお聞きするというのが筋だと思うのですが、今この仕事に追われて、時間がありません。(ほとんど毎日午前様です。)この仕事が片付いたら、じっくりVBAを勉強したいと思っております。どうぞよろしくお願いいたします。

  • エクセルVBA オートフィルタについて

    オートフィルタは2つまでしか条件が設定できません。 3つ以上設定する方法はないでしょうか?(OR条件です) オートフィルタの引数(Criteria)は2つしかありませんから、恐らく3つ以上の設定はできないと思っています。 そこで、オートフィルタを複数回設定し、使っていない列に特定の文字(例えば○など)を入れ、最後にこの○を条件にすることにより、実質的に3つ以上条件のフィルタリングを実現させたいと考えております。 そこでお聞きしたいのは、各条件でフィルタリングした時に、任意の列に○を入れる方法です。 例えば myRng.AutoFilter Field:=4, Criteria1:="=?UA*" でフィルタリングしたエリアの特定の列に○を入れるにはどのようなVBAになるのでしょうか? オートフィルタを使わず、ループで全行の条件を聞いて、○をつけることは可能ですが、行数が非常に多いので時間がかかってしまいます。 オートフィルタを使えばすばやく該当行が選択されますので、何とかこれを利用したいと思っています。何か良い方法は無いでしょうか? よろしくお願いします。

  • エクセルVBAでの複数条件でオートフィルタをする方法

    VBA初心者です。 例えば、シートに A  B 1 桃  100 2 柿  150 3 葡萄 400 というデータが書いてあって、ある時は「桃or柿」、またある時は「柿」だけ、「柿or葡萄」というようにVBAでオートフィルタをかけてデータを抽出したいと思っています。 その条件は、別にリストボックスが用意されていて、ユーザが選択した項目に該当するデータだけを取得したいのですが・・・ 不特定数の複数項目をオートフィルタの「or」条件で結ぶ事が出来ずに困っています。それともオートフィルタでは無理なのでしょうか? (知識が乏しくてすみません) どなたか良い解決策、または別策がありましたらご教授下さい。

  • データの配列への格納について(VBA)

    いつもお世話になっております。 VBAでのデータの抽出及び配列への格納についてお尋ねします。 貼付ファイルのようなデータがあります。 例えばこの中から『茨城県』のデータのみを配列に格納する場合はどのようにするのが良いでしょうか? オートフィルタ―?Find?など自分なりに考えてみたのですが・・・ 最終的には、ユーザーフォームで指定した項目に対してデータを抽出し、分析を行いたいと考えています。 どなたか御教授ください。 宜しくお願いいたします。

  • マクロとオートフィル

    オートフィルを使った「マクロの記録」の部分でつまずいてしまいました。 A列に名前、B列に数字が入っていて、2列にオートフィルタをかけている場合 B列の0の数字のみを非表示にしたかったので オートフィルのタブを使って「0」のチェックマークを外すという動作を「マクロの記録」で記録しました。 そこまではいいのですが、データの追加があったのでオートフィルタの範囲内に数字と名前をそれぞれの列に追加したあと上記のマクロを使ってみると、どうしても追加したデータと0が非表示になってしまいます。 これを避けるにはVBAで指示しないと行けないのでしょうか?

このQ&Aのポイント
  • 手汗をかく方で金属加工されてる方がいらっしゃいましたら、どんな対策をしているのか教えていただきたいです。
  • マシニングでの金属加工をしておりますが、手汗のせいで金属が錆びてしまうのが心配です。
  • バイスやワークに素手で触れている際に、細かなキリコ残りやバリがないかを確かめる必要がありますが、手汗が気になるとのことです。
回答を見る

専門家に質問してみよう