!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること
ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK
次スレは>>980が立てること
無理なら細かく安価指定
※前スレ
Excel VBA 質問スレ Part77
https://mevius.5ch.net/test/read.cgi/tech/1658009255/
-
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part78
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 5f2e-juJ7)
2022/10/30(日) 13:43:16.31ID:6yf2E1Gz0215デフォルトの名無しさん (JP 0Hcf-Z2Iz)
2022/12/02(金) 11:44:11.14ID:aS3/tvEuH 他の言語でやってるとね~やっぱ欲しいなって思う場面が出てくるんだよね~
別にテクニカルな事をしたいわけじゃないのよ~
別にテクニカルな事をしたいわけじゃないのよ~
216デフォルトの名無しさん (JP 0Hcf-Z2Iz)
2022/12/02(金) 11:44:35.67ID:aS3/tvEuH まぁ一つ言えばこの一連の流れで>>211は頭一つ抜けて無能だね~
217デフォルトの名無しさん (スップ Sd3f-RPwI)
2022/12/02(金) 12:18:39.53ID:ZBzpMFYrd218デフォルトの名無しさん (ワッチョイ f7f0-Z2Iz)
2022/12/02(金) 14:20:37.10ID:T9SNtee60 神様達、ありがとうございました
無いと分かればそれはそれですっきりです
無いと分かればそれはそれですっきりです
219デフォルトの名無しさん (スッップ Sdbf-SMlo)
2022/12/02(金) 19:29:27.52ID:GBjZlXrEd ある条件を満たせば使えるようになるのは内緒だ
220デフォルトの名無しさん (スップ Sd3f-RPwI)
2022/12/02(金) 20:03:26.58ID:ZBzpMFYrd 教えるつもりがないならだまってろ
221デフォルトの名無しさん (ワッチョイ b7da-3ksn)
2022/12/02(金) 20:23:06.13ID:OZyA684d0222デフォルトの名無しさん (ワッチョイ 7df0-7kHv)
2022/12/03(土) 10:30:49.38ID:S7dtgmin0 神様達、よろしくお願いします
classモジュール変数に、public で配列を置きたいのですが
配列は、オブジェクトモジュールのパブリックメンバーとして利用できません
と怒られました
クラスをnewして、メンバーとして配列にアクセスする方法はありませんか?
例)=================================
標準モジュール
dim cls as Class1
set cls = new Class1
debug.print(cls.ar(0)) <---こう呼び出したい
=============================
クラスモジュール
public ar() as variant
private sub Class_Inisialize()
ar(0)="xxx"
end sub
classモジュール変数に、public で配列を置きたいのですが
配列は、オブジェクトモジュールのパブリックメンバーとして利用できません
と怒られました
クラスをnewして、メンバーとして配列にアクセスする方法はありませんか?
例)=================================
標準モジュール
dim cls as Class1
set cls = new Class1
debug.print(cls.ar(0)) <---こう呼び出したい
=============================
クラスモジュール
public ar() as variant
private sub Class_Inisialize()
ar(0)="xxx"
end sub
223222 (ワッチョイ 7df0-7kHv)
2022/12/03(土) 10:34:59.98ID:S7dtgmin0 神様たち、すみませんでした。解決できました。ごめんなさい
224デフォルトの名無しさん (ワッチョイ d010-vo7k)
2022/12/03(土) 10:52:40.84ID:sKNlSpsi0225デフォルトの名無しさん (スップ Sdc4-4FAg)
2022/12/03(土) 12:46:31.23ID:pfZ7JepId それサブルーチンだし関数内関数っていっていいの?
引数も渡せないでしょ
引数も渡せないでしょ
226222 (ワッチョイ 7df0-7kHv)
2022/12/03(土) 13:22:57.30ID:S7dtgmin0 GOSUBはミートソースでも食べられないと教わりました
227デフォルトの名無しさん (ワッチョイ aa01-QZbE)
2022/12/03(土) 13:27:47.06ID:HS9T9UMm0 > VBA GOSUBでググれ
全米がずっこけたわ
もう老害はこう言うのでマウント取るしかないんだな...
全米がずっこけたわ
もう老害はこう言うのでマウント取るしかないんだな...
228デフォルトの名無しさん (JP 0H06-7kHv)
2022/12/03(土) 13:46:56.21ID:y5TLnC6XH >>227
これ若造やぞ
これ若造やぞ
229デフォルトの名無しさん (ワッチョイ 73da-9BiN)
2022/12/03(土) 13:59:22.91ID:53g102vo0 知ってる?
マウント取ってくるのは大抵年寄りだぞ
何故ならば体が思うように動かないからやたら口達者になるから。
マウント取ってくるのは大抵年寄りだぞ
何故ならば体が思うように動かないからやたら口達者になるから。
230デフォルトの名無しさん (JP 0H06-7kHv)
2022/12/03(土) 14:03:12.32ID:y5TLnC6XH そもそもこれマウントでもなんでもなく単に間違えてるだけでしょ
231デフォルトの名無しさん (スップ Sdc4-4FAg)
2022/12/03(土) 14:08:18.64ID:pfZ7JepId GOSUBでも似たようなことできるけど○○できないとか制限あるよっていえばいいのに
最初の4行なんて余計でしょもったいぶって言う割には回答がおかしすぎて
マウントとかそういうレベルでもない
最初の4行なんて余計でしょもったいぶって言う割には回答がおかしすぎて
マウントとかそういうレベルでもない
232デフォルトの名無しさん (アウアウウー Sab5-QZbE)
2022/12/03(土) 14:14:01.12ID:zLpEoZMka ↑ こう言うことを言い出すのもたいてい老害w
233デフォルトの名無しさん (ラクッペペ MM34-k0qw)
2022/12/03(土) 14:16:30.51ID:ywgcZJJ9M 高階関数のことならVBA関数では不可
ワークシート関数であればLAMBDA(とLET)
ワークシート関数であればLAMBDA(とLET)
234デフォルトの名無しさん (JP 0H06-g9pY)
2022/12/03(土) 14:26:56.17ID:y5TLnC6XH235デフォルトの名無しさん (アウアウウー Sab5-QZbE)
2022/12/03(土) 14:33:59.75ID:zLpEoZMka いきなり〇国とか言い出すのも老害によくある行動
236デフォルトの名無しさん (アウアウウー Sa3a-zfUU)
2022/12/03(土) 14:59:55.68ID:YYHySLTHa 質問者はなんで出来ると思って質問したのか?
237222 (ワッチョイ 7df0-7kHv)
2022/12/03(土) 15:06:08.67ID:S7dtgmin0 アドバイス頂けただけありがたいです。
神様皆様ありがとうございます
マクロの記録なのですが、
マクロ記録→検索→全部→マクロ記録終了
そしてマクロを選択して編集すると
Macro
と書かれているだけでマクロが記録できません
記録してどんなワークシート関数を使っているのかみたいのですが
何か必要な設定があるのでしょうか?
現在excel2019を使っています
神様皆様ありがとうございます
マクロの記録なのですが、
マクロ記録→検索→全部→マクロ記録終了
そしてマクロを選択して編集すると
Macro
と書かれているだけでマクロが記録できません
記録してどんなワークシート関数を使っているのかみたいのですが
何か必要な設定があるのでしょうか?
現在excel2019を使っています
238222 (ワッチョイ 7df0-7kHv)
2022/12/03(土) 15:11:13.12ID:S7dtgmin0239デフォルトの名無しさん (JP 0H06-7kHv)
2022/12/03(土) 15:32:48.63ID:y5TLnC6XH240デフォルトの名無しさん (JP 0H06-7kHv)
2022/12/03(土) 16:01:02.34ID:y5TLnC6XH >>238
vbaは化石だから色々と諦めるしかない
vbaは化石だから色々と諦めるしかない
241デフォルトの名無しさん (ワッチョイ c001-g9pY)
2022/12/03(土) 17:35:51.41ID:su8PlnK50242デフォルトの名無しさん (ワッチョイ a62f-WJTY)
2022/12/03(土) 18:08:54.01ID:i+Roms8I0243デフォルトの名無しさん (スップ Sdc4-4FAg)
2022/12/03(土) 18:30:19.13ID:pfZ7JepId244デフォルトの名無しさん (ワッチョイ 6eda-k08R)
2022/12/03(土) 19:16:17.53ID:lRZF9sqh0 >>238
Class内にDictionaryなりCollectionなりをSetしておいてItemをため込み、
Property Getで取得することはできそうな気がする。。。
ごめん、検証してないし希望とは違うかもしれんけど。
Class内にDictionaryなりCollectionなりをSetしておいてItemをため込み、
Property Getで取得することはできそうな気がする。。。
ごめん、検証してないし希望とは違うかもしれんけど。
245デフォルトの名無しさん (アウアウエー Sa6a-M9qo)
2022/12/03(土) 22:12:00.65ID:K9qqP04ra 複数行にまとめてVLOOKUP関数を埋め込みたいのでFormulaR1C1プロパティを使っているのですが、マジックナンバーを避けるために検索範囲や列番号を変数で表現すると一行がやたら長くなってしまいます
出来るだけ簡潔に書きたいのですが、何かいい方法はありませんかねえ
出来るだけ簡潔に書きたいのですが、何かいい方法はありませんかねえ
246デフォルトの名無しさん (ワッチョイ 328c-t7j7)
2022/12/03(土) 22:38:24.22ID:RHVI1GN10 >>245
やたら長いとやらを貼らないと意味が分からない
やたら長いとやらを貼らないと意味が分からない
247デフォルトの名無しさん (JP 0H06-7kHv)
2022/12/03(土) 22:54:43.08ID:y5TLnC6XH >>245
indirectかませてるって事?
indirectかませてるって事?
248デフォルトの名無しさん (ワッチョイ 6eda-RX5i)
2022/12/04(日) 05:27:51.07ID:c2Va4wZ/0249デフォルトの名無しさん (ワッチョイ 73da-9BiN)
2022/12/04(日) 05:34:26.58ID:SnW1Fv340 テーブルとか職場の人が嫌がるのですが
250デフォルトの名無しさん (ワッチョイ 6eda-RX5i)
2022/12/04(日) 07:20:23.13ID:c2Va4wZ/0251デフォルトの名無しさん (ワッチョイ 245f-obKj)
2022/12/04(日) 07:55:31.27ID:CPo+UFwT0 構造化参照も理解できない方たちが事務やってるの多いもんな
変数てLET関数のことかな
VBAの変数名の付け方が参考になるんじゃないか
むしろVBAだと変数名は少し長くなっても後から理解できるようにしておくというのが多いけど
変数てLET関数のことかな
VBAの変数名の付け方が参考になるんじゃないか
むしろVBAだと変数名は少し長くなっても後から理解できるようにしておくというのが多いけど
252デフォルトの名無しさん (JP 0H88-7kHv)
2022/12/04(日) 08:09:42.33ID:TGszPi/mH253デフォルトの名無しさん (JP 0H88-7kHv)
2022/12/04(日) 08:10:27.13ID:TGszPi/mH254デフォルトの名無しさん (スプッッ Sd9e-3ggU)
2022/12/04(日) 10:02:49.72ID:ep+/H4bNd 自分はテーブル大好き派なんだが嫌いな人多いんだ
255デフォルトの名無しさん (ワッチョイ 73da-9BiN)
2022/12/04(日) 12:51:49.12ID:SnW1Fv340 嫌いどころかデータ蓄積の入力用シートすら作ってない不思議な人達ばかりよ現場は。
ひとつの表で完結させようとしている。
良くそれで仕事を完遂できるなと
ひとつの表で完結させようとしている。
良くそれで仕事を完遂できるなと
256デフォルトの名無しさん (ワッチョイ e23e-YDcJ)
2022/12/04(日) 13:25:18.39ID:pUfIiilw0 すみません
凄く基本的なマクロの質問になると思いますが質問させてください
シート2のA2からA列の最終行までの値をコピーして
シート1のB3に貼り付けをしたいのですがどうしたらいいでしょうか?
範囲を最終行に応じて自動的に変化させたいです
他にもB2から最終行まで、D3から最終行までとするにはどうしたら良いでしょうか?
凄く基本的なマクロの質問になると思いますが質問させてください
シート2のA2からA列の最終行までの値をコピーして
シート1のB3に貼り付けをしたいのですがどうしたらいいでしょうか?
範囲を最終行に応じて自動的に変化させたいです
他にもB2から最終行まで、D3から最終行までとするにはどうしたら良いでしょうか?
257デフォルトの名無しさん (ワッチョイ aa19-vo7k)
2022/12/04(日) 14:09:55.48ID:5CZT7HJs0 >>252
クラス内のプロシージャを全てPrivateにして外部のモジュールから参照するのはしようと思えば出来る。
クラス内のプロシージャを全てPrivateにして外部のモジュールから参照するのはしようと思えば出来る。
258デフォルトの名無しさん (ワッチョイ aa01-QZbE)
2022/12/04(日) 14:24:22.61ID:S/+N28Tr0 >>256
VBA 最終行 でググれ
https://www.excel-ubara.com/excelvba1/EXCELVBA318.html
> シート2のA2からA列の最終行
なら
With Worksheets("シート2")
LastRow =.Cells(.Rows.Count, "A").End(xlUp).Row
End With
VBA 最終行 でググれ
https://www.excel-ubara.com/excelvba1/EXCELVBA318.html
> シート2のA2からA列の最終行
なら
With Worksheets("シート2")
LastRow =.Cells(.Rows.Count, "A").End(xlUp).Row
End With
259デフォルトの名無しさん (スップ Sdc4-4FAg)
2022/12/04(日) 15:39:27.71ID:E+FYkBejd >>256
クリップボード経由しないならこんな感じじゃない
Dim iLastRow As Long
iLastRow = Worksheets("Sheet2").Range("A1").SpecialCells(xlLastCell).Row
Worksheets("Sheet1").Range("B1:B" & CStr(iRow - 1)).Value = Worksheets("Sheet2").Range("A2:A" & CStr(iLastRow)).Value
ちなみに代入元と代入先の行数を合わせる必要があるからそこは必要に応じて書き換えてね
クリップボード経由しないならこんな感じじゃない
Dim iLastRow As Long
iLastRow = Worksheets("Sheet2").Range("A1").SpecialCells(xlLastCell).Row
Worksheets("Sheet1").Range("B1:B" & CStr(iRow - 1)).Value = Worksheets("Sheet2").Range("A2:A" & CStr(iLastRow)).Value
ちなみに代入元と代入先の行数を合わせる必要があるからそこは必要に応じて書き換えてね
260デフォルトの名無しさん (JP 0H88-7kHv)
2022/12/04(日) 15:42:10.01ID:TGszPi/mH >>257
dim cls as class1
set cls =new class1
cls.arry(0)
cls.dictionary("x")
みたいなことできますか?
プログラムはかなりできあがってきたんですが
出来るようなら書き換えたいです
dim cls as class1
set cls =new class1
cls.arry(0)
cls.dictionary("x")
みたいなことできますか?
プログラムはかなりできあがってきたんですが
出来るようなら書き換えたいです
261デフォルトの名無しさん (JP 0H88-7kHv)
2022/12/04(日) 16:08:10.76ID:TGszPi/mH 神様の皆様、よろしくお願いします
動的配列を使って要素を追加するケースで質問です
dim ar() as variant
redim ar(0)
for i=0 to 9
ar(i)=i
redim preserve ar(ubound(ar)+1)
next
redim preserve ar(ubound(ar)-1) // A
A部分はar(10)を削除しようとして記述しています
この記述は、ar配列の最終要素を削除する動作を保証しているのでしょうか?
それとも何かの影響でarの最終要素以外の要素を削除することはあるのでしょうか?
動的配列を使って要素を追加するケースで質問です
dim ar() as variant
redim ar(0)
for i=0 to 9
ar(i)=i
redim preserve ar(ubound(ar)+1)
next
redim preserve ar(ubound(ar)-1) // A
A部分はar(10)を削除しようとして記述しています
この記述は、ar配列の最終要素を削除する動作を保証しているのでしょうか?
それとも何かの影響でarの最終要素以外の要素を削除することはあるのでしょうか?
262デフォルトの名無しさん (ワッチョイ ae4b-lCwf)
2022/12/04(日) 16:43:26.32ID:cmQKIRXH0 >>261
VBE上でローカルウィンドウを出してF8を繰り返し押せば確認できるよ
VBE上でローカルウィンドウを出してF8を繰り返し押せば確認できるよ
263デフォルトの名無しさん (ワッチョイ aa01-QZbE)
2022/12/04(日) 16:53:49.22ID:S/+N28Tr0 >>261
自分でシミュレーションしてみ
' i = 9 から...
ar(i)=i ' ar(9)=9
redim preserve ar(ubound(ar)+1) ' redim preserve ar(9+1)
redim preserve ar(ubound(ar)-1) ' redim preserve ar(10-1)
自分でシミュレーションしてみ
' i = 9 から...
ar(i)=i ' ar(9)=9
redim preserve ar(ubound(ar)+1) ' redim preserve ar(9+1)
redim preserve ar(ubound(ar)-1) ' redim preserve ar(10-1)
264デフォルトの名無しさん (ワッチョイ e23e-YDcJ)
2022/12/04(日) 16:55:07.12ID:pUfIiilw0265デフォルトの名無しさん (JP 0H88-7kHv)
2022/12/04(日) 17:09:39.48ID:TGszPi/mH266デフォルトの名無しさん (JP 0H06-4FAg)
2022/12/04(日) 18:25:54.71ID:SVL4/CbaH267デフォルトの名無しさん (ワッチョイ dc05-AmP8)
2022/12/04(日) 18:42:02.29ID:QfYm9r1x0 請求書をつくるとき取引先ごとの売上をいれてるシートをピボットテーブルで日付ごとに合算してそれをコピペして請求書シートに貼ってるんですが
これをうまい具合に自動化することはできませんか?
これをうまい具合に自動化することはできませんか?
268デフォルトの名無しさん (スップ Sdc4-4FAg)
2022/12/04(日) 18:44:43.55ID:E+FYkBejd そういうコードをかけばいいんじゃない?
269デフォルトの名無しさん (ブーイモ MMba-5Y9H)
2022/12/04(日) 18:57:53.90ID:k+5uNib2M ピボットテーブルの特定セルを参照する関数なかったっけ?
270デフォルトの名無しさん (JP 0H06-4FAg)
2022/12/04(日) 19:30:14.40ID:SVL4/CbaH >>267
取引先ごとの売上をいれてるシートをピボットテーブルで日付ごとに合算してそれをコピペして請求書シートに貼ってる
↓
請求書シートの所定の場所に、ピボットテーブルを表示させる
でいいんじゃないの?
取引先や日付範囲でフィルタすれば全自動になると思う
取引先ごとの売上をいれてるシートをピボットテーブルで日付ごとに合算してそれをコピペして請求書シートに貼ってる
↓
請求書シートの所定の場所に、ピボットテーブルを表示させる
でいいんじゃないの?
取引先や日付範囲でフィルタすれば全自動になると思う
271デフォルトの名無しさん (ワッチョイ dc05-AmP8)
2022/12/04(日) 20:19:07.12ID:QfYm9r1x0272デフォルトの名無しさん (JP 0H06-4FAg)
2022/12/04(日) 20:33:04.86ID:SVL4/CbaH >>271
どうズレるかはよく分からんけど・・・
ズレるのが怖いなら、
単純に参照すれば良い。黄色の部分は本当にシンプルな式だけで良いと思う
https://i.imgur.com/rwpq1hu.png
どうズレるかはよく分からんけど・・・
ズレるのが怖いなら、
単純に参照すれば良い。黄色の部分は本当にシンプルな式だけで良いと思う
https://i.imgur.com/rwpq1hu.png
273デフォルトの名無しさん (ワッチョイ 328c-t7j7)
2022/12/04(日) 20:47:06.88ID:dKAtQmN50274デフォルトの名無しさん (JP 0H88-7kHv)
2022/12/04(日) 22:29:31.05ID:TGszPi/mH275デフォルトの名無しさん (ワッチョイ dc05-AmP8)
2022/12/05(月) 00:46:19.76ID:TwFYHOyP0276デフォルトの名無しさん (JP 0H06-4FAg)
2022/12/05(月) 01:25:43.19ID:vai3YpAKH >>275
>ちなみに零細で月に10枚程度しか請求書ださないとこは
>ExcelのなんちゃってDBで十分ですかね?
じゃなくて、成長率
毎年の成長率が高い企業は、本当に気をつけたほうがいい
>フリーSQLも含めACCESSやファイルメーカーもたかってみたがデータの柔軟性がなさすぎて困った
Excelがおかしな事をしているだけなんだよ
それがたまたま日本の零細~中小に合致しているだけ
>ちなみに零細で月に10枚程度しか請求書ださないとこは
>ExcelのなんちゃってDBで十分ですかね?
じゃなくて、成長率
毎年の成長率が高い企業は、本当に気をつけたほうがいい
>フリーSQLも含めACCESSやファイルメーカーもたかってみたがデータの柔軟性がなさすぎて困った
Excelがおかしな事をしているだけなんだよ
それがたまたま日本の零細~中小に合致しているだけ
277デフォルトの名無しさん (ワッチョイ dc05-AmP8)
2022/12/05(月) 01:33:53.42ID:TwFYHOyP0278デフォルトの名無しさん (ワッチョイ dc05-AmP8)
2022/12/05(月) 01:36:52.68ID:TwFYHOyP0 外部からインポートもコピペではできないし
テーブルを全く計算も不得意ときてる
テーブルを全く計算も不得意ときてる
279デフォルトの名無しさん (スプッッ Sd70-e7tZ)
2022/12/05(月) 03:27:44.54ID:FhvtASfFd 安い販売管理アプリすら買えない貧乏会社は潰れろ
280デフォルトの名無しさん (JP 0H88-7kHv)
2022/12/05(月) 06:57:51.15ID:/0dw54cWH 今どきはフリークラウドの管理ソフト(販売系、経理系、労務系)のサービスが山ほどあるでしょ
提供会社が無償提供やめたり、提供自体やめると面倒だけど
データ移行性を確保できるのならそっち方法がいい
提供会社が無償提供やめたり、提供自体やめると面倒だけど
データ移行性を確保できるのならそっち方法がいい
281デフォルトの名無しさん (ワッチョイ dc05-AmP8)
2022/12/05(月) 07:47:07.80ID:TwFYHOyP0282デフォルトの名無しさん (ミカカウィ FF90-lCwf)
2022/12/05(月) 11:40:12.06ID:BG/y+01pF >>246
一例をそのまま貼ると、こんな感じです。
Dim VLOOKUP商品名 As String
VLOOKUP商品名 = "=VLOOKUP(RC" & eCols_明細.得意先コード & "," & WsName得意先テーブル & "!R" & eRows_通常.開始行 & "C" & eCols_得意先テーブル.得意先コード & ":R" & EndRow得意先テーブル & "C" & eCount_得意先テーブル & "," & eCols_得意先テーブル.得意先名 & "," & 完全一致 & ")"
めちゃくちゃ長くて可読性が悪いなと……
一例をそのまま貼ると、こんな感じです。
Dim VLOOKUP商品名 As String
VLOOKUP商品名 = "=VLOOKUP(RC" & eCols_明細.得意先コード & "," & WsName得意先テーブル & "!R" & eRows_通常.開始行 & "C" & eCols_得意先テーブル.得意先コード & ":R" & EndRow得意先テーブル & "C" & eCount_得意先テーブル & "," & eCols_得意先テーブル.得意先名 & "," & 完全一致 & ")"
めちゃくちゃ長くて可読性が悪いなと……
283デフォルトの名無しさん (スップ Sd9e-4FAg)
2022/12/05(月) 12:03:42.76ID:2GrVmVNid 変数に代入している際の話なら
VLOOKUP商品名 = ""
VLOOKUP商品名 = VLOOKUP商品名 & "AAA"
VLOOKUP商品名 = VLOOKUP商品名 & "BBB"
VLOOKUP商品名 = VLOOKUP商品名 & "CCC"
とかきりのいいところで分割して代入すればいいんじゃない?
VLOOKUP商品名 = ""
VLOOKUP商品名 = VLOOKUP商品名 & "AAA"
VLOOKUP商品名 = VLOOKUP商品名 & "BBB"
VLOOKUP商品名 = VLOOKUP商品名 & "CCC"
とかきりのいいところで分割して代入すればいいんじゃない?
284デフォルトの名無しさん (アウアウウー Sa3a-zfUU)
2022/12/05(月) 12:08:08.63ID:1vq1KTlma >>282
それ自力で展開できないようじゃやばいよ
それ自力で展開できないようじゃやばいよ
285デフォルトの名無しさん (アウアウクー MMd2-M9qo)
2022/12/05(月) 12:14:29.23ID:EBZoNox0M286デフォルトの名無しさん (ワッチョイ e62c-WJTY)
2022/12/05(月) 12:36:26.38ID:2GYg1OhQ0287デフォルトの名無しさん (ワッチョイ 0101-9CiQ)
2022/12/05(月) 18:30:47.05ID:ovLbu+Xd0 >>285
「そもそも複数行へのVLOOKUP関数の埋込みをFormulaR1C1プロパティを使わなくても出来ないものなのかなあ」ってのがよくわからん
どんな機能を使おうが、セルに代入したいなら必ず一度はコードに記載しなきゃいけないんだから「eCols_明細.得意先コード」とかの変数名を短くするくらいしかないでしょ
「そもそも複数行へのVLOOKUP関数の埋込みをFormulaR1C1プロパティを使わなくても出来ないものなのかなあ」ってのがよくわからん
どんな機能を使おうが、セルに代入したいなら必ず一度はコードに記載しなきゃいけないんだから「eCols_明細.得意先コード」とかの変数名を短くするくらいしかないでしょ
288デフォルトの名無しさん (ワッチョイ 6eda-RX5i)
2022/12/05(月) 20:42:26.49ID:vfUaA4330 >>282
VBAからvlookup関数を埋め込んだことが無いので処理のイメージがつかめないんだけど、
今やろうとしていることはvlookup関数の字面を文字列を繋げて作り上げようとしてる感じなのかな?
そもそもVlookup関数の構文は VLOOKUP(検索値, 範囲, 列番号, 検索の型)なのだから変数を使うのであれば
検索値や範囲を変数に格納して繋げれば良いのでは? 例えば,,,
Dim val as String: val="値"
Dim rng as Range: set rng = range(”A1”,"B10")
Dim col as long: col = 2
Dim FormulaStr as string
FormulaStr = "=VLOOKUP(" & val & "," & rng.Address & "," & col & ", false)"
みたいな感じ? 値や範囲をセルによって可変にしたいなら変数に格納する値を変えればいいわけだし。。。
こういうことじゃないのかな?
VBAからvlookup関数を埋め込んだことが無いので処理のイメージがつかめないんだけど、
今やろうとしていることはvlookup関数の字面を文字列を繋げて作り上げようとしてる感じなのかな?
そもそもVlookup関数の構文は VLOOKUP(検索値, 範囲, 列番号, 検索の型)なのだから変数を使うのであれば
検索値や範囲を変数に格納して繋げれば良いのでは? 例えば,,,
Dim val as String: val="値"
Dim rng as Range: set rng = range(”A1”,"B10")
Dim col as long: col = 2
Dim FormulaStr as string
FormulaStr = "=VLOOKUP(" & val & "," & rng.Address & "," & col & ", false)"
みたいな感じ? 値や範囲をセルによって可変にしたいなら変数に格納する値を変えればいいわけだし。。。
こういうことじゃないのかな?
289デフォルトの名無しさん (ワッチョイ 245f-obKj)
2022/12/05(月) 20:47:00.71ID:imBemMvO0 そもそも数式をVBAで入力することってあんまりないよな
290デフォルトの名無しさん (ワッチョイ 6eda-RX5i)
2022/12/05(月) 21:46:02.27ID:vfUaA4330291デフォルトの名無しさん (JP 0H88-7kHv)
2022/12/05(月) 22:43:24.64ID:/0dw54cWH やっぱりVlookやsumifみたいな
組み込み関数のほうが、普通にコードするより速く強力なんでしょうか?
組み込み関数のほうが、普通にコードするより速く強力なんでしょうか?
292デフォルトの名無しさん (ワッチョイ 7cda-9BiN)
2022/12/06(火) 00:26:23.27ID:/P6wRT1K0 コードが短くなるから
293デフォルトの名無しさん (ワッチョイ 6eda-RX5i)
2022/12/06(火) 05:54:39.62ID:iYcy7y+Q0 >>291
Excelに備わっている関数は強力だと思うし使い勝手が良かったりするものもありますね。
私の場合はcountifやmatch、max、minあたりはVBA上でもWorksheetfunctionからよく使います。
Excelに備わっている関数は強力だと思うし使い勝手が良かったりするものもありますね。
私の場合はcountifやmatch、max、minあたりはVBA上でもWorksheetfunctionからよく使います。
294デフォルトの名無しさん (ワッチョイ aa01-QZbE)
2022/12/06(火) 06:19:16.90ID:MaIfapT+0 >>291
かなり最適化されてるしマルチスレッドで動作するから同じ処理ならVBAより相当速い
かなり最適化されてるしマルチスレッドで動作するから同じ処理ならVBAより相当速い
295デフォルトの名無しさん (スッップ Sd70-hPFt)
2022/12/06(火) 07:43:11.23ID:Al8BgWGSd >>275
零細だったらそれこそappsheetでもいいんじゃないですか?
零細だったらそれこそappsheetでもいいんじゃないですか?
296デフォルトの名無しさん (オッペケ Src1-9CiQ)
2022/12/06(火) 08:29:25.79ID:AKPIYKETr 関数を直接入力するとその後にシートに何かしら入力するたびに再計算されるから面倒だわ
その再計算が気にならないってんならvbaで処理しても気にならないレベルでしょ
countifなんか特に再計算に3分とかかかる場合もあるし
その再計算が気にならないってんならvbaで処理しても気にならないレベルでしょ
countifなんか特に再計算に3分とかかかる場合もあるし
297デフォルトの名無しさん (JP 0H06-4FAg)
2022/12/06(火) 09:00:18.69ID:0FDDxcj9H298デフォルトの名無しさん (オッペケ Src1-9CiQ)
2022/12/06(火) 11:03:13.75ID:jhjyA+WOr >>297
意味が分かりにくくてすまん
だから関数を直接セルに入力するようなことはせずに、vbaでworksheetFunctionとかDictionaryとか使って結果だけを出力するなって意味
vbaで関数を入力するのは引き継ぎとか他人に渡すのを想定したときくらいかな
意味が分かりにくくてすまん
だから関数を直接セルに入力するようなことはせずに、vbaでworksheetFunctionとかDictionaryとか使って結果だけを出力するなって意味
vbaで関数を入力するのは引き継ぎとか他人に渡すのを想定したときくらいかな
299デフォルトの名無しさん (スップ Sd9e-4FAg)
2022/12/06(火) 11:13:52.38ID:64yedq7Nd 2行目もよくわからんし
VBAで関数を入力とかイミフなんだが
VBAで関数を入力とかイミフなんだが
300デフォルトの名無しさん (アウアウアー Sac2-M9qo)
2022/12/06(火) 11:40:45.39ID:QNWFDahpa Application.Calculation = xlCalculationManual はとりあえず書いとくでしょ
301デフォルトの名無しさん (ワッチョイ 7cda-9BiN)
2022/12/06(火) 13:28:57.18ID:/P6wRT1K0 つかVBAで関数使えるなんて最近知ったわ
302デフォルトの名無しさん (ブーイモ MMba-5Y9H)
2022/12/06(火) 13:35:48.17ID:41AW+NFUM >>301
お馬鹿自慢要らない
お馬鹿自慢要らない
303デフォルトの名無しさん (ワッチョイ 2cda-WJTY)
2022/12/06(火) 18:35:08.85ID:+0skKz+k0 どんな機能も馬鹿には使えない
304デフォルトの名無しさん (JP 0H06-4FAg)
2022/12/06(火) 22:10:52.72ID:0FDDxcj9H305デフォルトの名無しさん (ワッチョイ acce-R4o2)
2022/12/06(火) 23:34:20.45ID:HLCihNOZ0 2行目がひどすぎる
306デフォルトの名無しさん (ワッチョイ 7cda-9BiN)
2022/12/07(水) 01:18:20.40ID:X43S603Q0 なにが?
307デフォルトの名無しさん (JP 0H88-7kHv)
2022/12/07(水) 07:13:11.50ID:FarCeGHLH 演算処理能力、メモリ容量、基盤の伝送量と速度が大幅に向上し
組み込み関数による処理、VBA関数による処理などの差によるメモリ効率、処理速度を考えず
組み込み関数に依存しないコーディングを書けるようになった
言い換えると3行になるな
メモリ効率を悪化させてしまった
組み込み関数による処理、VBA関数による処理などの差によるメモリ効率、処理速度を考えず
組み込み関数に依存しないコーディングを書けるようになった
言い換えると3行になるな
メモリ効率を悪化させてしまった
308デフォルトの名無しさん (スップ Sd9e-4FAg)
2022/12/07(水) 11:24:59.17ID:D8w4iSDKd >>304
関数が入っているセルを参照するようなコードの場合
例えばCells(4, 3)にCells(3, 3)の値を10倍するような関数が入っているとして
Cells(3, 3).Value = 40
Debug.Print Cells(4, 3).Value
とやった場合、自動になっていればCells(4, 3)は400になった値が参照できて
手動ならもともと入っている値が参照できるという状態でしょ
スペックが向上、負荷のないコードだから書かないというのは危険な考えでは
関数が入っているセルを参照するようなコードの場合
例えばCells(4, 3)にCells(3, 3)の値を10倍するような関数が入っているとして
Cells(3, 3).Value = 40
Debug.Print Cells(4, 3).Value
とやった場合、自動になっていればCells(4, 3)は400になった値が参照できて
手動ならもともと入っている値が参照できるという状態でしょ
スペックが向上、負荷のないコードだから書かないというのは危険な考えでは
309デフォルトの名無しさん (JP 0H06-4FAg)
2022/12/07(水) 11:32:32.02ID:utJNEW7kH >>308
再計算に左右されるコードを書く事がそもそもおかしいんですわ
再計算に左右されるコードを書く事がそもそもおかしいんですわ
310デフォルトの名無しさん (アウアウクー MMd2-M9qo)
2022/12/07(水) 12:12:32.61ID:LcpUtl7xM 配列がらみのFunctionを作ったときにメモリを空けようと「一時的な配列」を初期化しているのだけれどもしかしてあんまり意味ない?
たとえばこのように↓
Function 戻り値配列 (引数)As Variant
Dim TempArr As Variant
(……何らかの処理)
戻り値配列 = TempArr
Erase TempArr ← これ
End Function
同じ要領で“TempDic”をRemove allしたら戻り値の連想配列も空になっちゃったけどこれはなんでなんだろう
たとえばこのように↓
Function 戻り値配列 (引数)As Variant
Dim TempArr As Variant
(……何らかの処理)
戻り値配列 = TempArr
Erase TempArr ← これ
End Function
同じ要領で“TempDic”をRemove allしたら戻り値の連想配列も空になっちゃったけどこれはなんでなんだろう
311デフォルトの名無しさん (JP 0H06-4FAg)
2022/12/07(水) 12:16:33.70ID:utJNEW7kH312デフォルトの名無しさん (スップ Sd9e-4FAg)
2022/12/07(水) 12:21:53.20ID:D8w4iSDKd313デフォルトの名無しさん (ワッチョイ 7df0-7kHv)
2022/12/07(水) 13:54:56.12ID:wBRRjjXH0 >>312
vbaって配列の要素に変数を入れ込んでから配列を初期化すると、
要素変数への参照は切れるけれどメモリ領域は解放されないのでは?
それともvbaって配列要素への参照切れで割りあてたメモリを開放するの?
vbaって配列の要素に変数を入れ込んでから配列を初期化すると、
要素変数への参照は切れるけれどメモリ領域は解放されないのでは?
それともvbaって配列要素への参照切れで割りあてたメモリを開放するの?
314デフォルトの名無しさん (ラクッペペ MM34-EnYx)
2022/12/07(水) 14:42:43.86ID:snBsCL7QM 調べてから質問しよう
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【文春】永野芽郁(25)&田中圭(40)燃え上がる不倫LINE ★6 [Ailuropoda melanoleuca★]
- 【文春】永野芽郁(25)&田中圭(40)燃え上がる不倫LINE ★7 [Ailuropoda melanoleuca★]
- トランプ大統領、日本への自動車輸出少ない現状に改めて不満示す [首都圏の虎★]
- 永野芽郁、文春第2弾でフジも痛恨 『パリピ孔明 THE MOVIE』大コケで、永野主演映画は必勝が望まれていた [ネギうどん★]
- 【万博】ローソンの万博会場内の店舗 開幕日は売上高が“世界一”に 「からあげくん」1883個販売 [少考さん★]
- 【川崎・20歳女性死体遺棄】「あさひを返せ!」県警の説明に親族、友人ら90人が署に集まり猛抗議「嘘ばかり、謝れば済むことなのに」★16 [ぐれ★]
- でも実際万博に行けるのなんて実質ニートくらいだよな [382895459]
- 【文春砲第2弾】永野芽郁と田中圭の不倫LINE流出 ★3 [197015205]
- 暇空茜ってなんで婚活に失敗したの?金も学もユーモアもあるのに [382895459]
- 【文春砲】永野芽郁さんと田中圭さん、燃え上がる不倫LINEが流出 ★2
- 第一回嫌儲コンクラーベを開催します。嫌儲板の板長に相応しいと思う人物を挙げてください(1人1レスのみ) [535650357]
- 【統一】日本滅ぼす計画、ただの破壊じゃない。「成長しきったタイミングで滅ぼす」計画、あとは乗っ取りで一石二鳥 [677076729]