X



Excel VBA 質問スレ Part79(ワッチョイあり)

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (ワッチョイ aaa4-I2zm)
垢版 |
2023/01/28(土) 12:12:12.41ID:UjlIZ1Ov0
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること

ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK

次スレは>>980が立てること
無理なら細かく安価指定

※前スレ
Excel VBA 質問スレ Part77
https://mevius.2ch.net/test/read.cgi/tech/1658009255/
Excel VBA 質問スレ Part78
https://mevius.2ch.net/test/read.cgi/tech/1667104996/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
0004デフォルトの名無しさん (アウアウウー Sa47-B/zI)
垢版 |
2023/01/28(土) 15:04:00.65ID:uWWFw1N+a
1gj
0005デフォルトの名無しさん (ワントンキン MM8a-bQbc)
垢版 |
2023/01/28(土) 15:34:06.67ID:YZOoYTJxM
わかった気で勘違いしている馬鹿の間違いや馬鹿さ加減を指摘するとスレが荒れるので無視しましょう
最近では零細企業のあれです
0006デフォルトの名無しさん (ワッチョイ 9a02-5T4A)
垢版 |
2023/01/28(土) 21:43:50.55ID:cCrz+GwL0
エクセルでスクレイピングはできそうだけどね。
0007デフォルトの名無しさん (ワッチョイ 9a02-5T4A)
垢版 |
2023/01/28(土) 22:05:54.66ID:cCrz+GwL0
分かりづらい質問だな。
「エクセルファイルのシートにボタンを置いて、それをクリックしたら
あるアプリを立ち上げたい。これが可能ですか?」

ということかな。答えは可能。
0009デフォルトの名無しさん (ワッチョイ 9a02-5T4A)
垢版 |
2023/01/29(日) 09:15:12.97ID:KzySl/Bm0
httpリクエストとか、api接続とか、一般的な表計算の操作が中心の
エクセルユーザーの範囲外なんだけど。
ただ、ExcelでなくてGoogleスプレッドシートはapi接続に相性が良さそう。
クラウドにアプリがあるっていうのは、それだけ優位な気がする。
会社での表計算もほとんど、ExcelでなくてGoogleスプレッドシート使うようになってきて、
今Excelとして残っているのは、過去開発されたマクロで運用する箇所があるから。
こんなことになるとは数年前には思っていなかった。
0011デフォルトの名無しさん (ワッチョイ db10-+rQD)
垢版 |
2023/01/29(日) 10:26:38.51ID:nRF7bUNu0
A列セルに3桁のアルファベットと番号(AAA 1000)、B列セルに金額が入っており
A列セルは番号部分が同セル内に/で区切られ増えるパターンあり(AAA 1000/1001/1002)
これを/がある場合は/で区切り、番号ごとに行を追加して
更にB列の金額も追加した行数で分割するといったことを最終行まで繰り返し処理したいのですが

    A列      B列
AAA 1000/1001  1,000
       ↓↓↓
    A列      B列
AAA 1000      500
AAA 1001       500

金額を行数で分割する方法と
番号ごとに行を追加した時にアルファベットAAAを番号前に追加するにはどうすればよいでしょうか。
0012デフォルトの名無しさん (ワッチョイ db10-+rQD)
垢版 |
2023/01/29(日) 10:28:09.50ID:nRF7bUNu0
続き
コードはこれなのですが
どうかよろしくお願いします

Dim i As Long
Dim n As Long
Dim LastRow As Long
Dim SplCell As String
Dim temp As Variant
Dim AddRow As Long

LastRow = Cells(Rows.Count, 1).End(xlUp).Row

For i = LastRow To 1 Step -1
  SplCell = Cells(i, 1)
  temp = Split(SplCell, "/")
  AddRow = UBound(temp)
 If AddRow > 0 Then
  Range("A" & i + 1).Resize(AddRow).EntireRow.Insert
 End If

 For n = 0 To AddRow
  Cells(i + n, 1) = temp(n)
  Cells(i + n, 2) = Cells(i, 2)
 Next n
Next i
End Sub
0013デフォルトの名無しさん (ワッチョイ df49-+rQD)
垢版 |
2023/01/29(日) 11:46:37.73ID:WTXbQyE20
>>12

考えてみた。

Sub test()

Dim i As Long
Dim n As Long
Dim LastRow As Long
Dim SplCell(1) As String ←変更。(0)はアルファベットを格納、(1)はアルファベット以降の金額部を格納。
Dim temp As Variant
Dim AddRow As Long
Dim m As Double ←追加。行数で分割した金額。

LastRow = Cells(Rows.Count, 1).End(xlUp).Row

For i = LastRow To 1 Step -1
SplCell(0) = Left(Cells(i, 1), 4) ←追加
SplCell(1) = Mid(Cells(i, 1), 5) ←変更
temp = Split(SplCell(1), "/")
AddRow = UBound(temp)
If AddRow > 0 Then
Range("A" & i + 1).Resize(AddRow).EntireRow.Insert
End If

m = Cells(i, 2) / (AddRow + 1) 追加
For n = 0 To AddRow
Cells(i + n, 1) = SplCell(0) & temp(n) ←変更
Cells(i + n, 2) = m ←変更
Next n
Next i
End Sub
0015デフォルトの名無しさん (オッペケ Sr3b-O9ZV)
垢版 |
2023/01/29(日) 14:40:20.12ID:cIjm/G+Or
>>9
It sounds like you are saying that Excel users may not have experience with things like HTTP requests and API connections, but that Google Sheets may be better suited for those types of tasks because it is a cloud-based app. You also mention that your company has been transitioning away from using Excel and towards using Google Sheets for most of their spreadsheet needs, with the exception of some areas where older macros developed in Excel are still in use. It's interesting to see how technology and user preferences can change over time.
0019デフォルトの名無しさん (ワッチョイ 5f10-bQbc)
垢版 |
2023/01/29(日) 16:52:45.66ID:wtQ124Fo0
こっちも零細企業荒らしがいるのか
0020デフォルトの名無しさん (ワッチョイ b666-5T4A)
垢版 |
2023/01/29(日) 18:16:29.96ID:OkpG00lK0
クラスモジュールを使っていく勉強しています。
ClassAのプロパティとしてClassB,ClassCから作るオブジェクトを持たせる事で階層型に
整理できるようですが、これも正しいオブジェクト指向の形なのでしょうか?

メインコードからObjA.ObjB.プロパティAみたいに呼び出せるのです。
ObjAは例えば初期値というカテゴリ
ObjBは初期値の中の日付に関連するもの
ObjCは初期値の中の料金に関するもの
ObjA.の時点で候補が出てくるのも便利です。なんだかただの変数みたいに使ってる気もしますが。

そしてJavaでいうところのメソッドの継承ですが、親側ObjAのメソッドと同じ名前のメソッドを子側ObjBに作り、
中身は親側ObjAのメソッドを呼び出すだけとすれば継承と同じ動作をするような気がします。
子側クラス内で親側クラスのインスタンスを作成しているので、循環しているような気持ち悪さはありますが、内部はメインコードからは見えませんし。
オーバーライド?というのも親側ObjA側のメソッドを呼ばずに子側のObjBのメソッドに処理を好きなように書けばいいだけと思いました。

そして関数型にありがちな関連性のない関数群Module1とかもClassMultiにプロパティのないクラスとして書いて、
オブジェクト化すると、マルチに活躍する便利屋みたいな存在として、これもオブジェクト指向な気がしてきました。

しかも先ほどの継承みたいに別のクラスから同名メソッドで呼ばせれば、同じメソッドをクラス毎に書く必要もありません。
メイン側から見るとオブジェクト指向そのものにも思えます。

オブジェクト指向を人間や動物に例えると、とてもわかりづらかったのですが、
ネームタグみたいな説明をしているサイトから、単なる整理整頓の為の思考技術みたいに考えて。
見せかけのオブジェクト指向を目指してみると、本物と大差ない気がしてきているのですが間違っていますか?

このままなんちゃってオブジェクト指向で進むことをお勧めできない理由がありましたら教えてください。
CallByNameとかImplementsとか勉強すればもっと本物に近づくような気がしています。
0022デフォルトの名無しさん (ワッチョイ 8a3d-0rrK)
垢版 |
2023/01/29(日) 23:11:48.83ID:QtxW6Mg40
ワッチョイ付きに誘導されますた。

Type RecClass0
 field01 As String * 6
End Type
Type RecClass1
 field01 As String * 4
 field02 As Integer
End Type

Sub test()

 data = "abcdyyzzzz・・" ← HEXにすると "414243440006??????・・"

 Dim rec0 As RecClass0
 Dim rec1 As RecClass1
 rec0.field01 = data

 rec1 = rec0   ←型が一致しません

 Debug.Print Len(rec1.field02)
End Sub

dateの0006にあたる6を取ってきたいんだけど、上記のようなコードを考えてみた。
型が一致しませんになる。
代入て無理なのか?
コボルだとできるよな。
上のコードはインデントのために全角空白を使ってるので、半角にしてくれ。
0025デフォルトの名無しさん (ワッチョイ 3619-GWjr)
垢版 |
2023/01/30(月) 08:01:49.37ID:1uz9zngm0
>>20
> 子側クラス内で親側クラスのインスタンスを作成しているので、循環しているような気持ち悪さはありますが、内部はメインコードからは見えませんし。

堅牢性から考えるとVBAに限らずここがまずいかな
子クラスCで親クラスAを生成すると言う事は、
もし同じような親クラスDを作成して同じ子クラスを
使おうとするとその中で親クラスAを作成することが
前提となってしまい、親クラスDでは使えない場合が出てくる。

子クラスではあくまで子クラスの役割を
与えるべきであって、もし親クラスの機能を
使いたいなら直接子クラスの中で生成するのではなく、
CallByNameやインターフェースを使用するかして
処理を移譲させるようにした方がいいと思うよ。
0026デフォルトの名無しさん (スププ Sdba-5IHC)
垢版 |
2023/01/30(月) 09:39:47.20ID:e2a+Lyz1d
CSVファイルって、Excelで開いて編集して保存すると文字コードの問題でデータの後ろに半角スペースが入ることがあるのでしょうか?
0027デフォルトの名無しさん (スププ Sdba-5IHC)
垢版 |
2023/01/30(月) 09:40:56.25ID:e2a+Lyz1d
元々半角スペース入ってなかったのにデータをかきかえたりすると文字コードがShiftJISではない場合、文字化けして半角スペースが入るのでしょうか?
0030デフォルトの名無しさん (スププ Sdba-5IHC)
垢版 |
2023/01/30(月) 15:20:40.00ID:e2a+Lyz1d
>>29
たぶん、それだわ
ありがとう
0033デフォルトの名無しさん (ワッチョイ 172f-DSsr)
垢版 |
2023/01/30(月) 21:40:04.89ID:dCL8a0ux0
>>32
正しい余白ならインデントってのがあるが

CSVにしたらどうせ書式はなくなるのに、書式を空白で表そうとするEXCELが気持ち悪いのか
そのくせインデントは無視するという
0036デフォルトの名無しさん (アウアウウー Sa47-B/zI)
垢版 |
2023/01/31(火) 12:24:23.88ID:XEbPQm8Ra
余白は木を切る~
003820 (ワッチョイ b666-5T4A)
垢版 |
2023/02/01(水) 15:16:25.31ID:J3cdB8RP0
>>25
レス感謝です。
呼び出しだけなので「お父さんやって」的なイメージでした。

>もし同じような親クラスDを作成して同じ子クラスを
>使おうとするとその中で親クラスAを作成することが
>前提となってしまい、親クラスDでは使えない場合が出てくる。

ここがわかりませんでした。

ClsFatherとClsSonの二つがあるとします。
メインでClsFatherから父親シルバを作成、
自動的にClsFatherの中で息子キルアが作成されて父親のプロパティにセットされる
親クラスDにあたる父親ジンをClsFatherから作成して、息子ゴンがを作成される
息子ジンが継承もどきで使う機能は父親ドンのだけのつもりでしたが、
継承って本来は父親シルバ、息子ゴンみたいな組合せも自由に出来るものって意味だから
それじゃ違うよってことですか?

息子ゴンのメソッドでどの親メソッドを継承するかをImprementsとかで動的にしなさいということですか?
004038 (ワッチョイ b666-5T4A)
垢版 |
2023/02/01(水) 19:12:55.35ID:J3cdB8RP0
>>39
そうです。子も親のインスタンスを生成します。
当然オブジェクトとしては別物ですが、同じクラスからの生成ですので、
同じ親の機能を使えるという意味です。

実際にゴンはジンを作れず、ジンとほぼ同じ能力を持つ別の何かの力を使って
継承に見せかけるという事です。

この見せかけ行為が本当の意味での親オブジェクトの機能継承にあたらず危ないよって意味でしょうか?
で、本当の意味での親オブジェクトの機能を使うならCallByNameやImprementsを使いなよって意味でしょうか?
004140 (ワッチョイ b666-5T4A)
垢版 |
2023/02/01(水) 22:04:53.94ID:J3cdB8RP0
すみません。質問途中に別の質問をする事になってしまいます。
自力で解決出来ませんでした。

VBEのCtrl+hボタンで出てくる置換機能で、パターンマッチングを使用するにチェックを入れました。
Ai.Erase
Ai.Create
AiErase
AiCreate

この4つのワードにおいて、パターンマッチングとして
Ai[AE]としたら下の二つにだけマッチングしました。
そしたら一致したAとEは温存しつつAiとA or Eの間にどっとを入れたいのです。

実際はもう少し複雑なパターンなのですが。簡略化するとこんな感じです。
一致したAとEが消えてしまうので困っているのです。
一致した[AE]のどちらかをそのまま残したいと
Ai.[AE]みたいにしても置換後文字列はAi.[AE]がそのまま出てきてしまいます。

思ってるような使い方は出来ないという事でよろしいでしょうか?
0042デフォルトの名無しさん (ワッチョイ 8a3d-0rrK)
垢版 |
2023/02/03(金) 01:33:26.18ID:0K9bvbAh0
Sub test_if()
a = -1
If a >= 2 Then
Debug.Print "aは2以上"
Else
Debug.Print "aは2未満"
End If
End Sub

というマクロなんだけど<>を使わずに同じことが可能?
<>はネット上では禁止されてる場合があるので。
0050デフォルトの名無しさん (ワッチョイ ff19-gKyW)
垢版 |
2023/02/04(土) 01:29:18.62ID:Wbq5qWPo0
>>38
そそ、
そういう「どっちの親でも使える」ようにするために
そういう場合は継承は使わずに、移譲でやるのがいいんじゃないかと。
そもそもVBAじゃ厳密な意味の継承は使えないけどね。
0051デフォルトの名無しさん (ワッチョイ 4f01-Rev0)
垢版 |
2023/02/04(土) 03:13:48.63ID:5cp+GCIG0
一次元配列の中に二次元配列を入れるのってシートから二次元配列として取り込まない限り無理ですか?
例えばa(2)って一次元配列を作って
a(0)=cells(1,1).currentregion
とした場合、a(0)(1,1)と格納されるよね。
一方、b(2)って一次元配列をつくってそこに2次元配列を格納しようとしてredim b(0)(100,100)って宣言してもエラーになるよね?
0052デフォルトの名無しさん (ワッチョイ 4f01-Rev0)
垢版 |
2023/02/04(土) 03:22:13.04ID:5cp+GCIG0
特に複数のcsvを一次元配列ごとに二次元配列として取り込みたかったんたけど、それができなくて困ってます
0.csv→a(0)に二次元配列として格納
1.csv→a(1)に二次元配列として格納
2.csv→a(2)に二次元配列として格納
よくありそうなパターンですけどネットで調べても出てこなくて…
何かいいアイディアはあるでしょうか?
0058デフォルトの名無しさん (スプッッ Sda3-D+99)
垢版 |
2023/02/04(土) 09:14:10.73ID:xQtdr6Ugd
>>45
AIさんからの天の声です

Sub CheckSortOrder()
Dim sortOrder As Boolean
sortOrder = ActiveSheet.AutoFilter.Sort.SortOn
If sortOrder = True Then
MsgBox "The column is sorted in ascending order."
Else
MsgBox "The column is not sorted in ascending order."
End If
End Sub
0059デフォルトの名無しさん (ワッチョイ 8fda-EOzK)
垢版 |
2023/02/04(土) 10:59:33.56ID:mzRI23fF0
>>58
だからさ、そのコードが有効かどうかを、先ずはじぶんで検証しろよ ゴミコードだろうと何でも貼りゃあいいってもんじゃねーぞ
△! オブジェクトは、このプロパティまたはメソッドをサポートしていません。だぞ おま環のせいで動作しないだけってか?
検証もしてない野良コードは世間の大迷惑 AIなら間違わないってか? 訊ねる人間側に問題あるからゴミコード吐くのに気付け
0060デフォルトの名無しさん (スプッッ Sddf-D+99)
垢版 |
2023/02/04(土) 11:20:43.51ID:EUGDlgP1d
>>59
そのコードを検証することは重要です。そのコードが有効かどうかは、まず自分で確認する必要があります。「AIなら間違わない」という考え方は誤りです。AIモデルはトレーニングデータから学習するだけであり、常に正確ではありません。野良コードを使用しても問題が起こる可能性があり、それが世間を混乱させることがあります。
0061デフォルトの名無しさん (ワッチョイ 4f01-Rev0)
垢版 |
2023/02/04(土) 13:12:21.87ID:sIc7L3oe0
>>53
「csvを格納するならそのまま格納して」って言うのが、まさにその方法を知りたいっていう質問でした
Line Inputをつかって一行ずつ一次元配列に分割して、それを二次元配列に格納して、二次元配列の一次元目を増やして…ってのを繰り返すってのを考えました
(二次元配列の一次元目を増やすプロシージャを作成する前提)
ところがredim b(0)(100,100)という宣言自体がエラーになるのでどうしたものかと
0062デフォルトの名無しさん (ワッチョイ 0fda-kmO4)
垢版 |
2023/02/04(土) 14:48:40.79ID:JIMr/Iwq0
>>61
お役に立てたのならなによりっす。

でもその内容を聞いた感じだとcollectionかdictionaryを使ったほうがいい気もする。csvがどのくらいの文字数かわからんけど下手するとオーバーフローしそうな気が、、、

あとそもそもファイル操作で読み込むんじゃなくてPowerqueryとかでデータテーブル化してしまえば扱いやすい気も、、、あ、スマンね。いらぬお節介やった。
0063デフォルトの名無しさん (ワッチョイ cf79-p19T)
垢版 |
2023/02/04(土) 18:22:34.02ID:Av2vQos/0
>>61
そういうのって1次元の配列にCSVから作った2次元配列を足していくジャグ配列だよね
a(b)(c,d)として使いたいってそういう事だよね
CSVから2次元配列に落とす部分は自力で適当に作るしかないと思うよ
0065デフォルトの名無しさん (ワッチョイ 4f01-Rev0)
垢版 |
2023/02/04(土) 22:05:52.42ID:sIc7L3oe0
>>62
ジャグ配列はまさにその通りです!
色々調べてみたところ、Workbooks.OpenTextで一度新しいブックを開いて、そこをcurrentregionで二次元配列として取得するのが一番早そうでした
シート一度貼り付けて、そこから取得するのがちょっとかっこ悪い気もしますが、コード的には一番楽のだと思うのでそれでいきたいと思います
ありがとうごさいました!
0067デフォルトの名無しさん (ワッチョイ 0fda-kmO4)
垢版 |
2023/02/05(日) 06:12:14.98ID:zxOMW0wY0
>>65

解決の糸口が見つかってよかったです。
シートに貼り付けるのは一見かっこ悪く見えるかもしれませんが、エクセルの場合シート自体が目視できる2次元配列みたいなものなのでデータ用のシートを用意しておくのはデバッグの意味でも有効と思います。
最終的に非表示にしておけばデータを変えて不具合が出たときに参照できますしね。
0069デフォルトの名無しさん (スップ Sd5f-dHSc)
垢版 |
2023/02/08(水) 13:33:38.06ID:yPPt1d0+d
名前の定義で範囲に名前をつけると数式で使用できますが、
VBAで自作関数を作り、その引数として定義した名前を使用するとエラーとなってしまいます。
一応定義した名前の後に&“”を付けて文字列化すればエラーを回避できるのですが、毎回これを入力するのは煩わしく見栄えも悪いのでできることならなんとかしたいのですが
解決策ありましたらご教示の程お願いいたします。
0071デフォルトの名無しさん (アウアウウー Sa93-4QSx)
垢版 |
2023/02/08(水) 15:37:35.62ID:FTgAG7p2a
毎回やるならインターフェース関数作ればいいだけ
0073デフォルトの名無しさん (スップ Sd5f-dHSc)
垢版 |
2023/02/08(水) 23:15:53.95ID:Gaz3gRVpd
言葉でうまく説明できないので画像で説明させていただきます。
例えば引数の文字列に別の文字列をくっつけて返すだけのシンプルな関数を作ります。
当然引数にセルを指定すれば問題なく使用できます。
https://i.imgur.com/SnSyEby.png

次に、範囲に名前をつけてそれを引数として使用します。
https://i.imgur.com/6mcu5nn.png

するとこのように「#VALUE!」エラーが出ます。
https://i.imgur.com/9NNr0sB.png

ちなみに範囲の名前に&“”をつければ期待通りの結果になります。
https://i.imgur.com/haXX7gC.png

と、SS撮ってて気づきましたが範囲の中から同じ行のセルを選んで渡す必要があるのですね。
VLOOKUPの第一引数なんかで同じことをすると自動的に同じ行だけを渡せるので勘違いしていました。
0074デフォルトの名無しさん (ワッチョイ 0fda-zLlH)
垢版 |
2023/02/09(木) 07:05:59.22ID:bJr31kU+0
>>73
検証してないので的外れかもしれないけどたぶんRangeのデフォルト値の問題かと。
うろ覚えだけどvariant型で渡されているからセル単体を引数で渡すとセル内容の値の型(今回はstring型)を渡すけど
複数セルを渡すとrange型のオブジェクトとして渡されてるんじゃないかな。
なので自身で書かれているようにセルを特定してあげないといけないのだと思う。
0077デフォルトの名無しさん (スッップ Sdaa-GMxD)
垢版 |
2023/02/13(月) 07:05:23.93ID:HpzJjAlxd
>>76
Excelでは少数を厳密には表現できないから
0.1と書いても実際の値には0.12...みたいなのが入る
そのズレた値同士の足し算をズレた値と比べるからガタガタで合わなくなる
0078デフォルトの名無しさん (ワッチョイ d301-0qku)
垢版 |
2023/02/13(月) 07:53:01.46ID:/kiwbSJJ0
>>76
きちんと型宣言すればちゃんと計算できる
詳しくは下を見た方が早い
https://excel-ubara.com/excelvba4/EXCEL_VBA_427.html#:~:text=Single%EF%BC%88%E5%8D%98%E7%B2%BE%E5%BA%A6%E6%B5%AE%E5%8B%95%E5%B0%8F%E6%95%B0%E7%82%B9%E6%95%B0%E5%9E%8B%EF%BC%89%E3%81%AF4%E3%83%90%E3%82%A4%E3%83%88,%E7%99%BA%E7%94%9F%E3%81%97%E3%81%A6%E3%81%97%E3%81%BE%E3%81%84%E3%81%BE%E3%81%99%E3%80%82
0079デフォルトの名無しさん (アウアウウー Sa4f-qaxQ)
垢版 |
2023/02/13(月) 10:13:40.33ID:QGUistpWa
>>76
ほんとだよく気付いたね って言ってほしいのか?
0080デフォルトの名無しさん (ワッチョイ ff35-fTjZ)
垢版 |
2023/02/13(月) 10:18:31.40ID:86tN/4J60
すみません、マクロスレに誘導されてきました。教えてください
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel16.0
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
◆やりたいこと
データモデルに値を格納し接続先を作成している
その接続先にあるリストを、検索フォーム、コンボボックスなどのデータソースにしたい
◆補足情報とし調べがついてること
・ピボットテーブルにはビボットテーブル→データモデルからで設定できた
・選択リストもINDIRECT関数で設定できた
・コンボボックスや検索フォームは、RowSourceTypeにテーブルクエリーを設定
・RowSourceプロパティにテーブル名を設定
ここまではわかっていますが、うまく設定ができません

具体的には、下記コードでエラーが出ます
実行時エラー‘13’
型が一致しません

エラーの出たコード
Privets Sub UserForm1 Initialize() {
Me.ComboBox1.RowSourceType = “Table/Query”
Me.ComboBox1.RowSource = “syamei1”
}

上記のコードの書き方、サンプルコードがあれば教えて下さい。よろしくお願いします
0081デフォルトの名無しさん (ワッチョイ ff35-fTjZ)
垢版 |
2023/02/13(月) 10:21:58.10ID:86tN/4J60
連投すみません
コンボボックスじゃなくても構いません
やりたいことは大量のデータをもとに入力用のポップアップウインドウを作りたいです
レコードが合計で100万以上あり、重たくなるのを避けるために、データモデルの概念を知り、それで入力フォームを作ろうとしています
その方法でコンボボックスを見つけましたが、元となるデータソースがデータモデルの接続先から選べるなら、コンボボックスの形式じゃなくても構いません

入力規則で選択リストの値を持ってくることはできましたが、レコード件数が多いので、フォームで出したいと思っています

よろしくお願いします
0082デフォルトの名無しさん (アウアウウー Sa4f-qaxQ)
垢版 |
2023/02/13(月) 11:40:19.98ID:GyFZ7uvya
Privets ?
0083デフォルトの名無しさん (ワッチョイ ff35-fTjZ)
垢版 |
2023/02/13(月) 14:18:20.91ID:86tN/4J60
スマホ手打ちなので誤字は勘弁を
0085デフォルトの名無しさん (アウアウウー Sa4f-qaxQ)
垢版 |
2023/02/14(火) 11:37:45.99ID:nNkhowbBa
拙者も携帯なので試せないでござるよ
0086デフォルトの名無しさん (アウアウウー Sa4f-mhYO)
垢版 |
2023/02/14(火) 13:19:18.08ID:YTnfnco6a
現場で使えるテクニック満載のVBAの本を教えて下さい。
0088デフォルトの名無しさん (ワッチョイ aff9-UHi0)
垢版 |
2023/02/15(水) 09:38:23.37ID:dWAC20qI0
syamei1ってテーブルを指定してるようだけど
ちゃんとテーブルが存在してるの?
RowSourceでクエリやsql指定してみたら?
0090デフォルトの名無しさん (ワッチョイ c619-xn9B)
垢版 |
2023/02/15(水) 19:27:38.40ID:HlAv3bv30
ネットが見れない環境なんかね?
銀行系ではよくある話だけど
0094デフォルトの名無しさん (ワッチョイ a705-0qku)
垢版 |
2023/02/16(木) 14:14:15.80ID:TeVuhO500
Excel 365なんだが
ActiveXのコンボボックスをシートに配置すると
ブックを閉じるときにコンボボックスのChangeイベントが発生して
Changeイベントのコードが実行されるんだが、なんで閉じるときに発生するん?
バグじゃねーの?
0095デフォルトの名無しさん (スププ Sdaa-GKAg)
垢版 |
2023/02/16(木) 17:40:38.79ID:ImcZX1+Nd
アクティブXコントロールでボタン作ると、ボタン押した時にボタン内の文字が左に寄るのですが、これは治せるのでしょうか?
0096デフォルトの名無しさん (ワッチョイ 07da-8lmq)
垢版 |
2023/02/16(木) 17:44:23.49ID:IvN11mYG0
ActiveXオブジェクトは、自分(Application)のオブジェクトに見えても、実は外部のオブジェクトです
Application イベントの扱いで記述不足や漏れが無いか、プロパティの見直しなどしてみるかコードを貼ってみるなり
0098デフォルトの名無しさん (ワッチョイ a705-0qku)
垢版 |
2023/02/17(金) 07:12:43.98ID:WORa0xXL0
ActiveXはExcelシートで使うもんじゃないってのは今でも定石!
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況