!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付けるナリ
ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ
※前スレ
Excel VBA 質問スレ Part69
https://mevius.5ch.net/test/read.cgi/tech/1607786543/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
Excel VBA 質問スレ Part70
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ b6da-6NWR)
2021/03/18(木) 22:08:43.71ID:jtngtgXU0485デフォルトの名無しさん (アウアウウー Sab5-4hJQ)
2021/04/28(水) 19:07:20.75ID:fsi6lQwja ベテランの初心者がきました
よろぴく
よろぴく
486デフォルトの名無しさん (アウアウエー Sa66-qRZI)
2021/04/28(水) 19:31:32.06ID:xYFjFFNHa エラー429は自力で解決したのでもういいです。
487デフォルトの名無しさん (アウアウエー Sa66-qRZI)
2021/04/28(水) 19:41:38.21ID:xYFjFFNHa 理由はただの書き間違いでした。
488デフォルトの名無しさん (ラクッペペ MM34-4uvq)
2021/04/28(水) 19:45:56.67ID:Sz6ocakQM 429 = 死肉
489デフォルトの名無しさん (ワッチョイ 154f-DhNu)
2021/04/28(水) 23:01:14.39ID:gO4+NyeW0 >>479
Variant型の配列っていうのがあるんだね
配列でないVariant型ならデータが入っていればVariant型ではない(代入した型に変換される)
だからデータが入っているVariant型の配列って無いと思ってた
これ以上は切りが無くなりそうなので止めます
ありがとう
Variant型の配列っていうのがあるんだね
配列でないVariant型ならデータが入っていればVariant型ではない(代入した型に変換される)
だからデータが入っているVariant型の配列って無いと思ってた
これ以上は切りが無くなりそうなので止めます
ありがとう
490デフォルトの名無しさん (ワッチョイ bd10-y5Lq)
2021/04/29(木) 02:21:41.91ID:EFUE1W1F0 最初から配列であることを宣言した場合と、
Variantに配列をぶっこんだ場合は、
区別しないといけない
Variantに配列をぶっこんだ場合は、
区別しないといけない
491デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/29(木) 03:35:54.80ID:xPFf86S80 Variant型は調べれば調べるほど「???」ってなるから気をつけて
VB.Netでは廃止されたくらいの型だから
俺も最初調べててVariant型って内部型とか持ってるし
代入したものの参照でも抱えているだけのものと高を括ってたけど
Variant型の配列を作ってある要素には値型、ある要素には参照型を設定して関数の引数に値渡しで渡すと
きちんと値型の部分は値が、参照型の部分は参照が渡されるのは少し前にレスした通り
そもそも何で配列の値渡しは出来ないのにVariant型に入れると値渡しが出来るような思想で作られているのかも謎。そういうものだと思う他ない。
VBAがObject指向に片足を突っ込んでいるところで止まっているせいか、Objectでもそうでないものも代入出来る型として存在していて使い勝手が良い反面、
コンパイル時に内部型が違う場合でもエラーにならないから実行時に初めてエラーとなって気がついたり、
違う型のものを上書いてしまってエラーとならずに期待した挙動と変わってしまう場合が出て来る恐ろしい型でもある。
Variant型を使うなとは言えないけど
使う際にはその特性と挙動を十分把握していないと、ちょっと何か変わったことをしただけで期待した結果が得られないことになり得るから十分気をつけてね。
VB.Netでは廃止されたくらいの型だから
俺も最初調べててVariant型って内部型とか持ってるし
代入したものの参照でも抱えているだけのものと高を括ってたけど
Variant型の配列を作ってある要素には値型、ある要素には参照型を設定して関数の引数に値渡しで渡すと
きちんと値型の部分は値が、参照型の部分は参照が渡されるのは少し前にレスした通り
そもそも何で配列の値渡しは出来ないのにVariant型に入れると値渡しが出来るような思想で作られているのかも謎。そういうものだと思う他ない。
VBAがObject指向に片足を突っ込んでいるところで止まっているせいか、Objectでもそうでないものも代入出来る型として存在していて使い勝手が良い反面、
コンパイル時に内部型が違う場合でもエラーにならないから実行時に初めてエラーとなって気がついたり、
違う型のものを上書いてしまってエラーとならずに期待した挙動と変わってしまう場合が出て来る恐ろしい型でもある。
Variant型を使うなとは言えないけど
使う際にはその特性と挙動を十分把握していないと、ちょっと何か変わったことをしただけで期待した結果が得られないことになり得るから十分気をつけてね。
492デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/29(木) 03:54:38.48ID:xPFf86S80 余談だけど他の言語にも
例えばJavaScriptやC#には変数宣言する際に、型にvarって宣言することがあるけど、これはVariableと言って全然別物で
最初に代入した値の型をJavaScriptでは暗黙的に、C#では型推論で持ち回るものだから、もし、今後そう言った別言語を扱うことがあれば
そういうものだと覚えておけば勘違いしなくて済むよ。
例えばJavaScriptやC#には変数宣言する際に、型にvarって宣言することがあるけど、これはVariableと言って全然別物で
最初に代入した値の型をJavaScriptでは暗黙的に、C#では型推論で持ち回るものだから、もし、今後そう言った別言語を扱うことがあれば
そういうものだと覚えておけば勘違いしなくて済むよ。
493デフォルトの名無しさん (JP 0H98-On6t)
2021/04/29(木) 06:09:50.46ID:S4zpEuOGH Variant型っていうのはVBAやVBのために作られたわけじゃない
もともとWindowクラスが持ってる機能に対して、演算子をオーバーロードした物
もともとWindowクラスが持ってる機能に対して、演算子をオーバーロードした物
494デフォルトの名無しさん (テテンテンテン MM34-veNy)
2021/04/29(木) 06:17:04.92ID:K+5EoiH2M495デフォルトの名無しさん (JP 0H98-On6t)
2021/04/29(木) 06:50:30.24ID:S4zpEuOGH >>494
VariantとObjectは同じような物とか代替品として紹介してるサイトとかあるけど、これはあくまでも初心者向けの説明
実際はまったく違う物なので、個人的にはこうやって説明するのも反対したいところ
VariantとObjectは同じような物とか代替品として紹介してるサイトとかあるけど、これはあくまでも初心者向けの説明
実際はまったく違う物なので、個人的にはこうやって説明するのも反対したいところ
496デフォルトの名無しさん (テテンテンテン MM34-veNy)
2021/04/29(木) 07:11:32.09ID:uNZAJPBsM497デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/29(木) 07:11:42.35ID:xPFf86S80 >>495
そうなんだよね
Variantの代わりがObjectだと言われると
うーん、まぁ間違っていないとは思うけど
物凄い違和感を感じるよね。
同じものかと言われれば絶対別物と
はっきり言うことが出来るけど。
そうなんだよね
Variantの代わりがObjectだと言われると
うーん、まぁ間違っていないとは思うけど
物凄い違和感を感じるよね。
同じものかと言われれば絶対別物と
はっきり言うことが出来るけど。
498デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/29(木) 07:17:49.07ID:xPFf86S80 >>496
そうだねぇ
とりあえずこんなところかねぇ
ちなみに、何でも入る魔法の型といえば、C#ではobject型がそれに当たる。しかし、object型とVariant型は同じではない。object型は参照型であり、値型の値を扱うにはボックス化という手順が必要になる。また、参照型である以上、メモリの確保と破棄というオーバーヘッドが必ず付いて回る。しかし、Variant型は整数のような値であっても、オブジェクトへの参照であっても、それをそのまま格納できる。ボックス化やメモリの確保、解放のオーバーヘッドもない。まさに万能の魔法の箱である。
https://www.atmarkit.co.jp/fdotnet/extremecs/extremecs_12/extremecs_12_02.html
そうだねぇ
とりあえずこんなところかねぇ
ちなみに、何でも入る魔法の型といえば、C#ではobject型がそれに当たる。しかし、object型とVariant型は同じではない。object型は参照型であり、値型の値を扱うにはボックス化という手順が必要になる。また、参照型である以上、メモリの確保と破棄というオーバーヘッドが必ず付いて回る。しかし、Variant型は整数のような値であっても、オブジェクトへの参照であっても、それをそのまま格納できる。ボックス化やメモリの確保、解放のオーバーヘッドもない。まさに万能の魔法の箱である。
https://www.atmarkit.co.jp/fdotnet/extremecs/extremecs_12/extremecs_12_02.html
499デフォルトの名無しさん (ワッチョイ a868-8KU9)
2021/04/29(木) 07:22:43.60ID:r4t8KOvl0500デフォルトの名無しさん (ワッチョイ a868-8KU9)
2021/04/29(木) 07:23:03.00ID:r4t8KOvl0 なわけないか
501デフォルトの名無しさん (アウアウウー Sab5-4hJQ)
2021/04/29(木) 07:25:47.75ID:iJcHPvsoa VBAとVB.netはまったく別物で比較しようなんて思わない
標準がバリアントなんだからできるだけバリアントを使うべきだし
値渡しの件も、VBAでは値渡しのが原則なんだから
値渡しのオンリーにすべきとおもうけど
どうしても参照渡したいならパブリックにするだけ
標準がバリアントなんだからできるだけバリアントを使うべきだし
値渡しの件も、VBAでは値渡しのが原則なんだから
値渡しのオンリーにすべきとおもうけど
どうしても参照渡したいならパブリックにするだけ
502デフォルトの名無しさん (テテンテンテン MM34-veNy)
2021/04/29(木) 07:36:18.54ID:xmHZYPrVM503デフォルトの名無しさん (JP 0H98-On6t)
2021/04/29(木) 07:48:54.45ID:S4zpEuOGH504デフォルトの名無しさん (ワッチョイ a868-8KU9)
2021/04/29(木) 07:55:26.52ID:r4t8KOvl0 >>502
冗談で言ったらマジか
まぁオブジェクトは参照になるなら、ヒープ領域云々はそこまで考えなくてもいいか
vbaの文字列は文字の配列じゃなく単に値だったから、variantで文字列使いまくると良くない?
※そもそも値じゃなかったらごめん
冗談で言ったらマジか
まぁオブジェクトは参照になるなら、ヒープ領域云々はそこまで考えなくてもいいか
vbaの文字列は文字の配列じゃなく単に値だったから、variantで文字列使いまくると良くない?
※そもそも値じゃなかったらごめん
505デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/29(木) 08:01:54.76ID:xPFf86S80506デフォルトの名無しさん (アウアウウー Sab5-4hJQ)
2021/04/29(木) 08:12:11.05ID:iJcHPvsoa VBのときに他の言語がどうこうと長話はじめるのは老害みたいなもの
気をつけたほうがよい
気をつけたほうがよい
507デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/29(木) 08:17:52.33ID:xPFf86S80 老害だもの
みつを
みつを
508デフォルトの名無しさん (スプッッ Sd7e-T6Cp)
2021/04/29(木) 08:45:33.51ID:530kL6INd509デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/29(木) 09:13:27.94ID:xPFf86S80 >>508
そうかVBSは明示的に型宣言することないから忘れてた
そうかVBSは明示的に型宣言することないから忘れてた
510デフォルトの名無しさん (JP 0H98-On6t)
2021/04/29(木) 09:39:50.72ID:S4zpEuOGH Visual StudioのC++のVariantクラスも構造体の中身はまったく同じ
511デフォルトの名無しさん (アウアウウー Sab5-4hJQ)
2021/04/29(木) 12:13:26.48ID:iJcHPvsoa そうなると
VBSにてintの宣言をしたいときはどうなるの
VBSにてintの宣言をしたいときはどうなるの
512デフォルトの名無しさん (ワッチョイ 4b63-Z8j5)
2021/04/29(木) 12:38:49.55ID:q/beK7t50 その辺考慮することでExcelのマクロとしてどんなメリットがあるの?
513デフォルトの名無しさん (スップ Sd02-On6t)
2021/04/29(木) 13:12:06.33ID:KFW9RSkud >>511 不可能
514デフォルトの名無しさん (ワッチョイ 1e01-bfA/)
2021/04/29(木) 13:13:04.28ID:Z9k/ziJ20 よくわからんけど一般的な仕事に使うのに知る必要のある情報じゃなさそう
515デフォルトの名無しさん (スップ Sd02-On6t)
2021/04/29(木) 13:16:00.97ID:KFW9RSkud >>512
Variantは多機能だからプログラミングの負担を減らすことができるけど、メモリ食いだから、たとえば大きい配列が宣言できなかったりする
Variantは多機能だからプログラミングの負担を減らすことができるけど、メモリ食いだから、たとえば大きい配列が宣言できなかったりする
516デフォルトの名無しさん (ワッチョイ bd10-y5Lq)
2021/04/29(木) 16:00:22.26ID:EFUE1W1F0 AccessVBAエキスパートの試験では扱う範囲
ExcelVBAエキスパートでは気にしたくていい
試験はAccessVBAの方が2段くらい難しい
もちろんスタンダードの話な
ExcelVBAエキスパートでは気にしたくていい
試験はAccessVBAの方が2段くらい難しい
もちろんスタンダードの話な
517デフォルトの名無しさん (ワッチョイ fe68-uCoU)
2021/04/29(木) 16:53:35.51ID:aGUEXGqc0 エクセルで組んだ表や数式を
いつパソコンが壊れても
すぐ復元できるよう
メモに残しておきたいんですが
すでにある内容を
HTML文書みたいに文字だけに変換できたりってするんですか?
いつパソコンが壊れても
すぐ復元できるよう
メモに残しておきたいんですが
すでにある内容を
HTML文書みたいに文字だけに変換できたりってするんですか?
518デフォルトの名無しさん (ワッチョイ 1e01-bfA/)
2021/04/29(木) 17:08:19.64ID:Z9k/ziJ20 素直にバックアップとるかクラウドで良くないですか
519デフォルトの名無しさん (アウアウウー Sa08-iXMK)
2021/04/29(木) 18:10:50.49ID:MWXZTeF3a >>517
壊れたパソコンには復元できないよ
壊れたパソコンには復元できないよ
520デフォルトの名無しさん (ワッチョイ fe68-uCoU)
2021/04/29(木) 18:18:45.59ID:aGUEXGqc0 再現っていえばいいのかなんといえばいいのか…
とりあえずもしもの時のためにレシピ?を残しておきたい
とりあえずもしもの時のためにレシピ?を残しておきたい
521デフォルトの名無しさん (ワッチョイ 38e6-4uvq)
2021/04/29(木) 18:24:10.96ID:aTZmoNVK0 .slk マルチプラン形式ならテキストとして読めるぞ
522デフォルトの名無しさん (アウアウウー Sab5-4hJQ)
2021/04/29(木) 19:07:29.38ID:k0BuRVHXa523デフォルトの名無しさん (ワッチョイ d98e-iMGS)
2021/04/29(木) 19:41:36.50ID:gMCbhKMx0524デフォルトの名無しさん (ワッチョイ 4e10-mEE2)
2021/04/29(木) 19:42:12.84ID:I+JPieVz0525デフォルトの名無しさん (ワッチョイ fe68-uCoU)
2021/04/29(木) 19:53:50.93ID:aGUEXGqc0 フラッシュメモリーに保存してるけどそれも壊れるかもしれないし
526デフォルトの名無しさん (ワッチョイ 1e01-bfA/)
2021/04/29(木) 20:04:58.52ID:Z9k/ziJ20 だからグーグルのクラウドにでも保存しとけよ
527デフォルトの名無しさん (ワッチョイ d98e-iMGS)
2021/04/29(木) 21:46:03.77ID:gMCbhKMx0 >>525
馬鹿は帰れ
馬鹿は帰れ
528デフォルトの名無しさん (アウアウエー Sa6a-rcSs)
2021/04/29(木) 21:47:52.03ID:qBmeMAVZa >>525
VBAより先に勉強すべきことがある
VBAより先に勉強すべきことがある
529デフォルトの名無しさん (ワッチョイ a868-8KU9)
2021/04/29(木) 21:57:15.15ID:r4t8KOvl0530デフォルトの名無しさん (ワッチョイ c7cc-TNk6)
2021/04/30(金) 00:10:52.82ID:G7lq05sG0 これを短く書きたいのですが、どう書けばいいですか?
Range(Cells(r, 1),Cells(r, 10)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.CurrentRegion.Borders.LineStyle = xlContinuous
Range(Cells(r, 1),Cells(r, 10)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.CurrentRegion.Borders.LineStyle = xlContinuous
531デフォルトの名無しさん (ワッチョイ 7fda-OedE)
2021/04/30(金) 00:13:18.87ID:1H39I5ca0 >>520
カセットテープに保存しとけよ
カセットテープに保存しとけよ
532デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/04/30(金) 00:38:44.27ID:XMOC9xEV0 >>530
やりたいことは
Range(Cells(r, 1),Cells(r, 10))
・・・
Range(Cells(r, 11),Cells(r, 20)
みたいなこと?
全容を見せてくれたほうが早いと思う。
やりたいことは
Range(Cells(r, 1),Cells(r, 10))
・・・
Range(Cells(r, 11),Cells(r, 20)
みたいなこと?
全容を見せてくれたほうが早いと思う。
533デフォルトの名無しさん (ワッチョイ 2701-3faj)
2021/04/30(金) 02:19:19.76ID:zq+mlYyf0 >>530
やりたいことを言葉で説明した方が速そう
やりたいことを言葉で説明した方が速そう
534デフォルトの名無しさん (ワッチョイ 2701-3faj)
2021/04/30(金) 02:34:26.19ID:zq+mlYyf0535デフォルトの名無しさん (ワッチョイ bfba-t5YL)
2021/04/30(金) 02:53:52.43ID:sRtBXBMU0 Excelのマクロをエクセル環境なしに実行したいのですが、
vbsをつかえばExcelは不要ですか?
vbsをつかえばExcelは不要ですか?
536デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/04/30(金) 03:01:21.54ID:XMOC9xEV0537デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/04/30(金) 03:02:27.11ID:XMOC9xEV0538デフォルトの名無しさん (ワッチョイ bfba-t5YL)
2021/04/30(金) 03:04:35.08ID:sRtBXBMU0539デフォルトの名無しさん (ワッチョイ 2701-3faj)
2021/04/30(金) 03:23:39.09ID:zq+mlYyf0 vbsは型宣言が出来ない、
VBAで可能なライブラリ参照が出来ない、
暗黙の参照先等の違いがる
それらを使用していないコードなら実行出来る可能性がある
(要するに簡単にはいかない)
正直「みんな入れてるであろうエクセルで実行できる」っていうただ一つのメリットのみを目的ににして
わざわざ使いにくいVBAを仕方なしに許容してるのであって、
エクセル不要ならPythonなりJSなりC#で書くべき
VBAで可能なライブラリ参照が出来ない、
暗黙の参照先等の違いがる
それらを使用していないコードなら実行出来る可能性がある
(要するに簡単にはいかない)
正直「みんな入れてるであろうエクセルで実行できる」っていうただ一つのメリットのみを目的ににして
わざわざ使いにくいVBAを仕方なしに許容してるのであって、
エクセル不要ならPythonなりJSなりC#で書くべき
540デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/04/30(金) 03:29:54.28ID:XMOC9xEV0 >>538
内容による
vbsとvbaは似て非なるもの、だけど互換性はまぁまぁある
vbaをまるっとvbsにコピペして動くものもあれば、手直ししないと動かないもの、絶対に無理なものもある
まぁコピーペーストだけで一発で動くのは稀だとは思う。大体動かないだろう
また、vbsは無料でwindowsに標準でついているので、あーだこーだ言うよりはやったほうが早い
内容による
vbsとvbaは似て非なるもの、だけど互換性はまぁまぁある
vbaをまるっとvbsにコピペして動くものもあれば、手直ししないと動かないもの、絶対に無理なものもある
まぁコピーペーストだけで一発で動くのは稀だとは思う。大体動かないだろう
また、vbsは無料でwindowsに標準でついているので、あーだこーだ言うよりはやったほうが早い
541デフォルトの名無しさん (ワッチョイ 2701-3faj)
2021/04/30(金) 03:37:12.82ID:zq+mlYyf0 >>536
貼ってくれたURLのページにある
>String型変数のメモリアドレス
これ、要するにString型変数の値は参照値って事?
察してはいたけどByval xxx$って嘘じゃん
調べれば調べるほど無茶苦茶な言語だなw
ただ先頭に配列長が入ってるのは嬉しいな
LEN関数が高速だって事だし、実際に検証したらそうだった
これからは文字列の有無はLEN関数を使おう
貼ってくれたURLのページにある
>String型変数のメモリアドレス
これ、要するにString型変数の値は参照値って事?
察してはいたけどByval xxx$って嘘じゃん
調べれば調べるほど無茶苦茶な言語だなw
ただ先頭に配列長が入ってるのは嬉しいな
LEN関数が高速だって事だし、実際に検証したらそうだった
これからは文字列の有無はLEN関数を使おう
542デフォルトの名無しさん (JP 0Hcb-OedE)
2021/04/30(金) 04:58:51.13ID:VHqB9FfdH >>534
MSDNのWin32APIのリファレンス
https://docs.microsoft.com/en-us/windows/win32/api/oaidl/ns-oaidl-variant
これを見れば、Valiant構造体は共用体の入った構造体が共用体になってることが一目瞭然
VBAからは、初期化の手順を省略(自動化)したりして簡単に使えるようにしてある
MSDNのWin32APIのリファレンス
https://docs.microsoft.com/en-us/windows/win32/api/oaidl/ns-oaidl-variant
これを見れば、Valiant構造体は共用体の入った構造体が共用体になってることが一目瞭然
VBAからは、初期化の手順を省略(自動化)したりして簡単に使えるようにしてある
543デフォルトの名無しさん (ワッチョイ df05-uN1F)
2021/04/30(金) 06:01:15.47ID:w8M9C8im0 Dim abc As Variant, maxVal Variant
abc = Range("A1:A100")
・
・
・
maxVal = WorksheetFunction.Max(abc(50 To 80, 1))
これはabc(50 To 80, 1)の部分でコンパイルエラーになりますが、
このように一発で配列内の特定の範囲の値を取得することはできますか?
やはりFor〜Nextで回してやらないと駄目でしょうか?
abc = Range("A1:A100")
・
・
・
maxVal = WorksheetFunction.Max(abc(50 To 80, 1))
これはabc(50 To 80, 1)の部分でコンパイルエラーになりますが、
このように一発で配列内の特定の範囲の値を取得することはできますか?
やはりFor〜Nextで回してやらないと駄目でしょうか?
544デフォルトの名無しさん (JP 0Hcb-OedE)
2021/04/30(金) 06:19:01.47ID:VHqB9FfdH545デフォルトの名無しさん (テテンテンテン MM8f-m/Zw)
2021/04/30(金) 07:04:01.89ID:M0On9wgSM >>541
> 察してはいたけどByval xxx$って嘘じゃん
噓じゃねーよ、Byvalならちゃんとコピーされる(内部的には新規領域確保して内容コピー)
> 調べれば調べるほど無茶苦茶な言語だなw
お前さんの理解力が足らんだけ
> 察してはいたけどByval xxx$って嘘じゃん
噓じゃねーよ、Byvalならちゃんとコピーされる(内部的には新規領域確保して内容コピー)
> 調べれば調べるほど無茶苦茶な言語だなw
お前さんの理解力が足らんだけ
546デフォルトの名無しさん (JP 0Hcb-OedE)
2021/04/30(金) 07:57:01.95ID:VHqB9FfdH メモリ上で文字列領域の先頭に長さが入ってるのはMicrosoft BASICの伝統
C言語などで使われる\x00で区切る方式だと文字列の中にChr$(&h00)を入れられなくなるので地味に面倒だった
C言語などで使われる\x00で区切る方式だと文字列の中にChr$(&h00)を入れられなくなるので地味に面倒だった
547デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/04/30(金) 09:18:44.82ID:XMOC9xEV0 だから、有限なんですね
548デフォルトの名無しさん (アウアウウー Saab-5hFs)
2021/04/30(金) 09:53:25.08ID:JEk9gHJMa 改行しろよ、読みにくいだろ
549デフォルトの名無しさん (ワッチョイ df05-uN1F)
2021/04/30(金) 10:28:11.61ID:8Lrh8uSx0550デフォルトの名無しさん (アウアウウー Saab-qkI6)
2021/04/30(金) 10:56:55.90ID:S41gzW82a WorksheetFunctionってその名の通りワークシート上の計算をするためのものだから仕方ないわな
551デフォルトの名無しさん (ワッチョイ 672f-uN1F)
2021/04/30(金) 13:14:51.01ID:lXELEtlJ0552デフォルトの名無しさん (JP 0Hcb-OedE)
2021/04/30(金) 13:46:28.53ID:VHqB9FfdH553デフォルトの名無しさん (ブーイモ MMcf-solw)
2021/04/30(金) 13:52:18.51ID:4gSq67JmM 質問者を納得させるのではなく
自分の知識をドヤ顔で披露する場がこのスレ
自分の知識をドヤ顔で披露する場がこのスレ
554デフォルトの名無しさん (ラクッペペ MM8f-HlUj)
2021/04/30(金) 13:55:12.85ID:clFaH4DRM 古代BASIC語の使えるやつには想像すらできない構文だな
ナウい言語から入るとこんな発想が出来るのか
Enumeraterとか作ってもコールバック関数書くのが面倒くさいからどうしようもないよね
ナウい言語から入るとこんな発想が出来るのか
Enumeraterとか作ってもコールバック関数書くのが面倒くさいからどうしようもないよね
555デフォルトの名無しさん (ワッチョイ df4f-U2UV)
2021/04/30(金) 14:11:06.28ID:lUzIA11U0 10 CONSOLE 0,25,0,1
20 SCRERN 0,0
20 SCRERN 0,0
556デフォルトの名無しさん (ワッチョイ 7fda-PU2s)
2021/04/30(金) 14:13:33.94ID:1H39I5ca0557デフォルトの名無しさん (スップ Sdff-PTVc)
2021/04/30(金) 16:19:17.86ID:W9vsivKyd sheet1のB1が整数ならSheet2のC1
にSheet1のB1の整数をSheet2のC1に
表示し
Sheet1のB1が整数でない場合は
Sheet2のC1にSheet1のA1の整数を表示
させたいのですが、インデックス範囲エラーになったりして困ってます
Numeric関数なのはわかるんですが
標準モジュールに書くのか
Sheet1に書くのかわかりません
ご教授ください
Private Sub Worksheet_Change(ByVal Taget as Range)
If IsNumeric(Worksheets("1").Range)
にSheet1のB1の整数をSheet2のC1に
表示し
Sheet1のB1が整数でない場合は
Sheet2のC1にSheet1のA1の整数を表示
させたいのですが、インデックス範囲エラーになったりして困ってます
Numeric関数なのはわかるんですが
標準モジュールに書くのか
Sheet1に書くのかわかりません
ご教授ください
Private Sub Worksheet_Change(ByVal Taget as Range)
If IsNumeric(Worksheets("1").Range)
558デフォルトの名無しさん (アウアウウー Saab-qkI6)
2021/04/30(金) 16:51:06.75ID:S41gzW82a559デフォルトの名無しさん (スップ Sdff-PTVc)
2021/04/30(金) 17:19:44.60ID:W9vsivKyd Sheet1にコードを書いてます
560デフォルトの名無しさん (ワッチョイ e701-jEDI)
2021/04/30(金) 19:10:46.17ID:qIU2nW870 そもそもnumericって整数かどうかじゃなくて
数字かどうかの判定じゃなかったか?
数字かどうかの判定じゃなかったか?
561デフォルトの名無しさん (ワッチョイ e701-jEDI)
2021/04/30(金) 19:11:19.57ID:qIU2nW870 あとrangeじゃなくてtargetやろ
562デフォルトの名無しさん (ワッチョイ e701-jEDI)
2021/04/30(金) 19:12:09.12ID:qIU2nW870 あっrangeであってたわ
range(target.address)かな
range(target.address)かな
563デフォルトの名無しさん (ワッチョイ 7fda-OedE)
2021/04/30(金) 19:13:35.28ID:1H39I5ca0564デフォルトの名無しさん (スップ Sdff-PTVc)
2021/04/30(金) 19:48:53.26ID:W9vsivKyd Sheet1のB1の値が変化したらSheet2のC1が変化させたいのでSheet1にコードを書いてチェンジイベントでいいのかな?
むずかしいですね
むずかしいですね
565デフォルトの名無しさん (ワッチョイ 2701-3faj)
2021/04/30(金) 21:15:34.30ID:zq+mlYyf0566デフォルトの名無しさん (ワッチョイ 2701-3faj)
2021/04/30(金) 21:20:31.83ID:zq+mlYyf0567デフォルトの名無しさん (テテンテンテン MM8f-m/Zw)
2021/04/30(金) 21:52:12.56ID:BfTXTUZEM >>565
元々文字列は内容変わったら領域確保し直したりするから内部的に参照持つのが普通
ByVal は文字列を複製して渡すしByRefは内部的な参照への参照を渡す
何の矛盾もないよ
中途半端に内部的な参照を気にしてもしょうがないよ
元々文字列は内容変わったら領域確保し直したりするから内部的に参照持つのが普通
ByVal は文字列を複製して渡すしByRefは内部的な参照への参照を渡す
何の矛盾もないよ
中途半端に内部的な参照を気にしてもしょうがないよ
568デフォルトの名無しさん (ワッチョイ df4f-U2UV)
2021/04/30(金) 21:55:44.24ID:lUzIA11U0 >>565
え?そうだっけ?
確か配列は参照渡ししか出来ないから
Variant型に突っ込んで渡して
値型のものを渡すようにするんじゃなかったっけ?
もっともそれでも参照型のものは参照が渡されるけど。
え?そうだっけ?
確か配列は参照渡ししか出来ないから
Variant型に突っ込んで渡して
値型のものを渡すようにするんじゃなかったっけ?
もっともそれでも参照型のものは参照が渡されるけど。
569デフォルトの名無しさん (ワッチョイ 0702-h3Dk)
2021/04/30(金) 22:00:13.74ID:HAcSh5oY0 誰か教えてほしいんですが、
数字を単純に足すんじゃなくて=+100+200というふうに増えた数字を全部数式に残していくように一つのセルに入れていくやり方ってありますか?
例えば別のシートに100 200 350とあったら
記録用のシートのセルに=100+200+350と飛ばしたいです。
セルの中身見た時に650となってるのではなくて=100+200+350と表示されてほしい
数字を単純に足すんじゃなくて=+100+200というふうに増えた数字を全部数式に残していくように一つのセルに入れていくやり方ってありますか?
例えば別のシートに100 200 350とあったら
記録用のシートのセルに=100+200+350と飛ばしたいです。
セルの中身見た時に650となってるのではなくて=100+200+350と表示されてほしい
570デフォルトの名無しさん (ワッチョイ df4f-U2UV)
2021/04/30(金) 22:02:58.83ID:lUzIA11U0 >>569
単純にCStrで数字を文字列に変換して繋げばいいだけと思うけどそういう意味じゃない?
単純にCStrで数字を文字列に変換して繋げばいいだけと思うけどそういう意味じゃない?
571デフォルトの名無しさん (アウアウウー Saab-5hFs)
2021/04/30(金) 23:05:04.91ID:ftoQG8Lta572デフォルトの名無しさん (アウアウウー Saab-5hFs)
2021/04/30(金) 23:07:22.57ID:ftoQG8Lta >>569
これも式を表示するモードがあったはず
これも式を表示するモードがあったはず
573デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/04/30(金) 23:09:00.86ID:XMOC9xEV0 >>557
sheet1モジュールに書く
シート名はs1とs2にしてるのでテキトーに変えて
Private Sub Worksheet_Change(ByVal Target As Range)
If _
Target.Address <> "$B$1" _
Or Not (IsNumeric(Target)) _
Then
Exit Sub
End If
main = Cells(1, 2).Value
main2 = Cells(1, 1).Value
If (Int(main) - (main)) = 0 Then
Sheets("s2").Cells(1, 3) = main
Else
Sheets("s2").Cells(1, 3) = Int(main2)
End If
End Sub
sheet1モジュールに書く
シート名はs1とs2にしてるのでテキトーに変えて
Private Sub Worksheet_Change(ByVal Target As Range)
If _
Target.Address <> "$B$1" _
Or Not (IsNumeric(Target)) _
Then
Exit Sub
End If
main = Cells(1, 2).Value
main2 = Cells(1, 1).Value
If (Int(main) - (main)) = 0 Then
Sheets("s2").Cells(1, 3) = main
Else
Sheets("s2").Cells(1, 3) = Int(main2)
End If
End Sub
574デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/04/30(金) 23:13:44.15ID:XMOC9xEV0 >>569
地味にやるしかない
Sub foo()
Cells(3, 1).Formula = "=" & Cells(1, 1).Value & "+" & Cells(2, 1)
End Sub
量が多いならfornextかなんかで処理すると良い
地味にやるしかない
Sub foo()
Cells(3, 1).Formula = "=" & Cells(1, 1).Value & "+" & Cells(2, 1)
End Sub
量が多いならfornextかなんかで処理すると良い
575デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/04/30(金) 23:13:57.10ID:XMOC9xEV0 joinほしい
576デフォルトの名無しさん (スップ Sdff-PTVc)
2021/04/30(金) 23:21:20.34ID:W9vsivKyd577デフォルトの名無しさん (ワッチョイ 0702-h3Dk)
2021/04/30(金) 23:40:08.54ID:HAcSh5oY0578デフォルトの名無しさん (ワッチョイ 7fda-OedE)
2021/05/01(土) 00:46:43.32ID:zFFwGDhV0 CONCATがある
579デフォルトの名無しさん (テテンテンテン MM8f-m/Zw)
2021/05/01(土) 05:48:25.12ID:1uksgnWZM >>575
Joinあるやろ
手元にExcelないから試してないけど
Cells(3, 1).Formula = "=" & Join(Application.Transpose(Range("A1:C1" ).Value), "+")
でいけないかな
Joinあるやろ
手元にExcelないから試してないけど
Cells(3, 1).Formula = "=" & Join(Application.Transpose(Range("A1:C1" ).Value), "+")
でいけないかな
580579 (テテンテンテン MM8f-m/Zw)
2021/05/01(土) 06:04:07.19ID:jbHbRAMYM よく見たら行/列間違えてるわ
Cells(3, 1).Formula = "=" & Join(Application.Transpose(Range("A1:A3" ).Value), "+")
だな
Excel 2019ならVBA使わずに
C1: =TEXTJOIN("+", TRUE, "=", A1:A3)
でいけるかも
Cells(3, 1).Formula = "=" & Join(Application.Transpose(Range("A1:A3" ).Value), "+")
だな
Excel 2019ならVBA使わずに
C1: =TEXTJOIN("+", TRUE, "=", A1:A3)
でいけるかも
581デフォルトの名無しさん (ワッチョイ 0702-h3Dk)
2021/05/01(土) 10:06:17.84ID:v351dbwI0 >>580
例えば元表
コード 200 金額 200 5月
コード 150 金額 300 4月
コード 200 金額 500 5月
コード 150 金額 400 6月
コード 200 金額 50 5月
と並んでたとして、飛ばしたい表に
コード200に一致した場合は=200+500+50
コード150 の4月は=300
みたいな感じで月が同じでコードが一致してる場合だけ積み立てていくことってできますか?
うまくいかなくて、、
例えば元表
コード 200 金額 200 5月
コード 150 金額 300 4月
コード 200 金額 500 5月
コード 150 金額 400 6月
コード 200 金額 50 5月
と並んでたとして、飛ばしたい表に
コード200に一致した場合は=200+500+50
コード150 の4月は=300
みたいな感じで月が同じでコードが一致してる場合だけ積み立てていくことってできますか?
うまくいかなくて、、
582デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/05/01(土) 10:22:39.67ID:orU8r25h0 >>580
別の質問だけど、
Application.Transpose
って
WorksheetFunction.Transpose
の事?
ApplicationってついてたらWorksheetFunctionは省略できるの?
別の質問だけど、
Application.Transpose
って
WorksheetFunction.Transpose
の事?
ApplicationってついてたらWorksheetFunctionは省略できるの?
583デフォルトの名無しさん (アウアウウー Saab-5hFs)
2021/05/01(土) 13:16:18.88ID:eT9ez6fta こういう処理はピボットの得意分野だとおもう
ピボットスレにも聞いてみたらとうかな
ピボットスレにも聞いてみたらとうかな
584デフォルトの名無しさん (ワッチョイ 7fda-x7Q7)
2021/05/01(土) 13:18:22.06ID:+awRLs9V0 ピボットスレってあったっけ?
585デフォルトの名無しさん (ラクッペペ MM8f-HlUj)
2021/05/01(土) 13:20:57.76ID:GvoaCTGBM >>582
互換、環境の違い……
互換、環境の違い……
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国側が首相答弁の撤回要求、日本側拒否★6 [夜のけいちゃん★]
- 「厚かましい挑発的発言だ」中国国連大使が高市首相発言に強く反発 日本の常任理事国入りに明確に反対 [ぐれ★]
- 自民、経済対策で子ども1人に2万円給付へ 児童手当に上乗せ 所要額は約4000億円 [ぐれ★]
- 債券・円・株「トリプル安」に…長期金利1.755%まで上昇、円は対ユーロで史上最安値 ★3 [蚤の市★]
- 解体ごみ約2.3トンを山に不法投棄か トルコ国籍解体工を逮捕 埼玉 [どどん★]
- 【漫画】『週刊少年サンデー』連載中の漫画家、前編集者に怒り! 入稿遅れ、無断のセリフ変更など暴露 「心の糸が切れて」 [冬月記者★]
- 【速報】中国、水産物輸入停止 [527893826]
- 【高市悲報】官房長官「局長がペコペコしてる画像が拡散しているが日本は承知しとらん😡中国に申し入れした!」🤔 [359965264]
- 日本の長期国債、全部終わる。俺「ネトウヨ国家日本を滅ぼして起きましたよ。父さん」 [805596214]
- 【悲報】高市早苗さん、たった一人で日本を崩壊へ導く [714769305]
- 【悲報】「やったー!こだわりまくった洋館仕立ての家を建てたぞ!」➡「「離婚したんで住まずに売ります……」 [158478931]
- 精神する時の🏡
