Sub 行と列() Dim tateya As String Dim gouki As String Dim gouki2 As String Dim siriaru As String Dim test As Worksheet Set test = Worksheets("テスト") tateya = test.Range("a1") gouki = test.Range("a2") haihhun = "-" gouki2 = tateya & haihhun & gouki '号機 Dim siri As Worksheet Set siri = Worksheets("シリアル管理") Dim hanni_seru As Variant '範囲指定はバリアント型を使用する事 hanni_seru = siri.Range("D1:L39") 'VLOOKUP(列の条件,A1:D5,MATCH(行の条件,A1:D1)) siriaru = WorksheetFunction.VLookup(gouki2, hanni_seru, WorksheetFunction.Match("H1", "D1:L1")) MsgBox siriaru End Sub 0197デフォルトの名無しさん (アークセー Sxbd-2RUv)2019/10/08(火) 02:02:42.66ID:l+0JwRkcx>>196 たぶんMatchの行条件がおかしいけど、どんな問題が起きてるのか分からないから何とも言えない
VBAでJavaScriptも同様だね。 こっちの方が敬遠したい。 まずはVBAだけで何とかならないかを考える。 0218デフォルトの名無しさん (ワッチョイ 9fa2-8cCB)2019/10/11(金) 17:59:50.09ID:l8XLJu9S0>>216 まじかー vbaでやれるっていうことはwinapiを使うって事だよね? スクリーン上の指定座標の色の識別とかもできたりするの? 0219デフォルトの名無しさん (ワッチョイ b74b-x3kW)2019/10/11(金) 18:32:21.51ID:cTW5CNRi0 特定のアプリのウィンドウに対してキー入力するとかVBAでやってるよ 0220デフォルトの名無しさん (ブーイモ MMcf-4N8v)2019/10/11(金) 20:26:26.20ID:WXbKDhhqM Cells(1,"A")と書かず、判りにくいCells(1,1)と書くのはなぜ? ネットの記述とか見ててもCells(1,"A")と書いてるの見たこと無い 0221デフォルトの名無しさん (ワッチョイ f768-NJTS)2019/10/11(金) 20:52:13.81ID:zntJ+vZ40 マルチかよw 0222デフォルトの名無しさん (ワッチョイ b7ce-NJTS)2019/10/11(金) 22:18:32.49ID:thcocK/e0 はわわ〜 0223デフォルトの名無しさん (アウアウエー Sadf-UHnC)2019/10/11(金) 23:28:47.56ID:CLF8jhxua RPAは所詮VBAに勝てないか っしゃああ 0224デフォルトの名無しさん (ワッチョイ 9fa2-8cCB)2019/10/12(土) 02:44:28.24ID:o9i+oJev0 forでまわせんだろうが 個人的にrangeをなぜ使うかの方がわからん 0225デフォルトの名無しさん (ワッチョイ 9fa2-8cCB)2019/10/12(土) 02:45:37.39ID:o9i+oJev0 ああ、cellsで表現できるのをrangeで表現するのが解らんってことね 0226デフォルトの名無しさん (ワッチョイ f768-NJTS)2019/10/12(土) 06:05:16.65ID:ghJl2hig0 Range("B2:E6").Interior.Color = 65535 こんな場合は使うかな 見た目というかデータに影響を与えない部分はrangeの方が読みやすい、気がする 0227デフォルトの名無しさん (ワッチョイ 9f01-8cCB)2019/10/12(土) 06:55:20.10ID:aSZCz9kN0 朕も同じくだわ 0228デフォルトの名無しさん (ワッチョイ f77c-h29T)2019/10/12(土) 11:15:14.28ID:Wxq9g5aB0 Cells(1, "a")と書くならRangeを使えばいい 0229デフォルトの名無しさん (スフッ Sdbf-hY6M)2019/10/12(土) 11:19:09.64ID:cp8dvw0gd マルチする迷惑な質問者多いな… 0230デフォルトの名無しさん (ブーイモ MMfb-4N8v)2019/10/12(土) 11:58:45.65ID:6ww4xfxmM 繰り返すときCells(i, 1)よりCells(i, "A")の方が判りやすいと思うけど 0231デフォルトの名無しさん (ワッチョイ f768-NJTS)2019/10/12(土) 12:34:57.54ID:ghJl2hig0 列方向に繰り返す時はどうするの 0232デフォルトの名無しさん (ブーイモ MMcf-olh0)2019/10/12(土) 12:37:13.83ID:O9HuO9geM むしろexcel側でR1C1形式がデフォルトになれば良いのに 0233デフォルトの名無しさん (ワッチョイ 9f4b-x3kW)2019/10/12(土) 12:44:34.65ID:9l3IvWTz0 列は作りながら足したり順番変えたりする事が多いので最初からenum作って管理する cells(i, cols.hoge)みたいにしてる 0234デフォルトの名無しさん (ワッチョイ f768-NJTS)2019/10/12(土) 12:46:15.93ID:ghJl2hig0>>232 三四郎に対抗するためにこうなった 結果、シェアを勝ち取ったけど負の遺産として残ってしまったね 0235デフォルトの名無しさん (ワッチョイ 97da-NJTS)2019/10/12(土) 19:24:53.26ID:E5CVP1ep0 アホか 0236デフォルトの名無しさん (アークセー Sxcb-FpGY)2019/10/12(土) 20:28:16.78ID:grx7Z1qlx 経験則から言うと、エクセルのシートを入力フォームや書類のフォーマットのように捉えてる人はRangeを使いがちで、配列やテーブルとして扱えるオブジェクトの塊だと捉えてる人はCellsを使う傾向がある 0237デフォルトの名無しさん (ワッチョイ bfad-la4p)2019/10/13(日) 00:25:27.70ID:ZLXCWom40 あるリストをユーザーフォームで絞り込んでそのユーザーフォームのリストボックスに リスト内容を表示させたいのですがオートフィルタの表示はうまくいくってるのですがリストの表示 先がうまく表示されません。どうしたらいいでしょうか? 以下がコードです private Sub kensaku_bo_Click() 'オートフィルタによる検索 Dim ws_kiki As Worksheet Set ws_kiki = Worksheets("機器履歴") Dim tateya As String '建屋番号 Dim gouki As String '号機番号 Dim gouki2 As String '建屋と号機の合計のセル Dim haihhun As String Dim myData As Variant tateya = ken1.Value gouki = ken2.Value haihhun = "-" gouki2 = tateya & haihhun & gouki '号機 ws_kiki.Range("A1").AutoFilter 3, gouki2 Dim lastRow As Long With ws_kiki lastRow = .Cells(Rows.Count, 1).End(xlUp).Row myData = .Range(.Cells(1, 1), .Cells(Rows.Count, 12).End(xlUp)).Value End With With list_ken .ColumnCount = 12 .ColumnWidths = "50;80;50;50;50;50;50;50;50;50;50;50" .List = myData End With End Sub 0238デフォルトの名無しさん (ワッチョイ b7ce-NJTS)2019/10/13(日) 04:36:36.74ID:PQpo0fQ70 変数で回す時はCells セル位置が固定の時、範囲指定する時はRange 1行ごとにコード入力が楽な方を選んでる 0239デフォルトの名無しさん (ワッチョイ bff7-n5Mu)2019/10/13(日) 09:40:37.82ID:EzRorSmA0>>237 myData(Range型)にはフィルター設定情報は入ってない 一行一行をRow.Hidden判定しながら範囲内ループさせて取り込むしかないね 0240デフォルトの名無しさん (ワッチョイ bff7-n5Mu)2019/10/13(日) 09:49:37.23ID:EzRorSmA0 間違えたmyDataは配列か それでもフィルター情報は乗らないね リストボックスの.RowSourceに範囲アドレス入れて連動させる方法あるけど これフィルターも連動したっけ? 0241デフォルトの名無しさん (ワッチョイ 1fba-7XqI)2019/10/13(日) 15:30:11.40ID:8j4dObBs0 セルC5:C17に数値が入ってます(A) セルF5:F21に数値が入ってます (B) セルY5:Y25に数値が入ってます (C)
AとBの数値のうちCにない数値をセルO5から順番に下に抜き出したいんです
cを配列で格納するまでは出来たのですがそれ以降がわかりません よろしくお願いします
初心者です 0242デフォルトの名無しさん (ワッチョイ b74b-x3kW)2019/10/13(日) 15:41:29.73ID:tc/0x//C0 配列を検索すればいいだけでは 0243デフォルトの名無しさん (ワッチョイ 1fba-7XqI)2019/10/13(日) 15:45:58.47ID:8j4dObBs0>>242 すみません その配列の検索が上手くいかなくて… 0244デフォルトの名無しさん (スフッ Sdbf-Sohv)2019/10/13(日) 16:03:13.56ID:TBfrTFPMd 配列よりコレクションの方が楽では 0245デフォルトの名無しさん (ワッチョイ b74b-x3kW)2019/10/13(日) 16:05:31.06ID:tc/0x//C0 for i = 0 to ubound(配列) if 配列(i) <> 検索したい値 then どこかに出力 end if next