探検
Excel VBA 質問スレ Part65
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 3bda-drwQ)
2020/03/17(火) 16:27:20.88ID:hh8LiIgR0ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part64
https://mevius.5ch.net/test/read.cgi/tech/1575297834/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
556デフォルトの名無しさん (オッペケ Sr39-xf6K)
2020/04/23(木) 08:02:32.37ID:WPkfNDtBr VBA質問スレで必死になるのはちょっと恥ずかしいよなあw
557デフォルトの名無しさん (ワッチョイ 0791-2b7E)
2020/04/23(木) 09:42:16.36ID:4BIs3zJP0558デフォルトの名無しさん (ワッチョイ 0791-2b7E)
2020/04/23(木) 09:51:26.69ID:4BIs3zJP0 >>555
解析する時間もドキュメント作成する時間も費用も貰っているが他人のコード解析するのに四苦八苦してるんだがね。
これのどこが変なのかさっぱり分からん。
何ができて何に四苦八苦してるかの前に、お前は俺が何が出来てないと思ってるのか言えよ。
今までの話じゃ、お前の主張は解析する時間、ドキュメント作成する時間や費用を貰うと四苦八苦することが無くなるということのようだが、そんなこたあねえぞ。
解析する時間もドキュメント作成する時間も費用も貰っているが他人のコード解析するのに四苦八苦してるんだがね。
これのどこが変なのかさっぱり分からん。
何ができて何に四苦八苦してるかの前に、お前は俺が何が出来てないと思ってるのか言えよ。
今までの話じゃ、お前の主張は解析する時間、ドキュメント作成する時間や費用を貰うと四苦八苦することが無くなるということのようだが、そんなこたあねえぞ。
559デフォルトの名無しさん (ドコグロ MMa8-f1XF)
2020/04/23(木) 09:51:33.56ID:dNGhRpxuM >>557
「何ができて」の説明が一切なくて失笑
「何ができて」の説明が一切なくて失笑
560デフォルトの名無しさん (ワッチョイ 0791-2b7E)
2020/04/23(木) 09:52:35.44ID:4BIs3zJP0 自分自身への引用でも>>なんて使わん。
>で十分だし、普通。
>で十分だし、普通。
561デフォルトの名無しさん (ドコグロ MM46-f1XF)
2020/04/23(木) 09:55:24.79ID:TqAmz8xEM >>558
ドキュメント作成してるのに四苦八苦してるなら役に立たないドキュメントを作ったお前がアホなだけだけど?
あと、せめてレスを1つにまとめろよ
なぜかバカは同じ内容に複数レスで返すんだよな
まあ低能にまとめる能力を期待しても無駄かなw
ドキュメント作成してるのに四苦八苦してるなら役に立たないドキュメントを作ったお前がアホなだけだけど?
あと、せめてレスを1つにまとめろよ
なぜかバカは同じ内容に複数レスで返すんだよな
まあ低能にまとめる能力を期待しても無駄かなw
562デフォルトの名無しさん (ワッチョイ 0791-2b7E)
2020/04/23(木) 09:55:54.13ID:4BIs3zJP0563デフォルトの名無しさん (ドコグロ MM36-f1XF)
2020/04/23(木) 09:56:33.89ID:6OPJP51MM >>560
自身のレスとお前のアホレスを混同されたくないだけw
自身のレスとお前のアホレスを混同されたくないだけw
564デフォルトの名無しさん (ワッチョイ 4642-PxOI)
2020/04/23(木) 09:57:01.84ID:BmbwEUgo0 いつまで続くんだコレ
565デフォルトの名無しさん (ワッチョイ 0791-2b7E)
2020/04/23(木) 09:57:12.84ID:4BIs3zJP0566デフォルトの名無しさん (ワッチョイ 0791-2b7E)
2020/04/23(木) 09:58:37.88ID:4BIs3zJP0567デフォルトの名無しさん (ドコグロ MM40-f1XF)
2020/04/23(木) 10:00:29.56ID:80sunLmwM568デフォルトの名無しさん (ワッチョイ 0791-2b7E)
2020/04/23(木) 10:03:00.52ID:4BIs3zJP0569デフォルトの名無しさん (ワッチョイ 0791-2b7E)
2020/04/23(木) 10:09:52.45ID:4BIs3zJP0 最低限、やり取りから解析に四苦八苦してるというのはまともな奴なら分かる筈なんだが。
とすれば、お前の言う金と時間を貰って、今まさにドキュメント起こす為の解析中(だった)なのが分かる筈。
これが前提なんだからドキュメントが既に出来上がってるなんてアホな誤解してたことは無いと信じたい。
とすれば、お前の言う金と時間を貰って、今まさにドキュメント起こす為の解析中(だった)なのが分かる筈。
これが前提なんだからドキュメントが既に出来上がってるなんてアホな誤解してたことは無いと信じたい。
570デフォルトの名無しさん (オッペケ Srea-xf6K)
2020/04/23(木) 10:18:34.00ID:pyQ+IxFJr 関係ない人はこいつらをNGにすればいいで
571デフォルトの名無しさん (アウアウエー Sa6a-BE4G)
2020/04/23(木) 10:24:08.71ID:EgVweMy+a まだやってるのか
完全に自粛ストレスだろうな
完全に自粛ストレスだろうな
572デフォルトの名無しさん (ドコグロ MM46-f1XF)
2020/04/23(木) 10:29:06.69ID:TPtGWxWfM573デフォルトの名無しさん (ワッチョイ 0791-2b7E)
2020/04/23(木) 11:08:06.42ID:4BIs3zJP0574デフォルトの名無しさん (ワッチョイ 0791-2b7E)
2020/04/23(木) 11:11:09.39ID:4BIs3zJP0 何か、お金と時間貰うとロボットが勝手に解析してドキュメント作ってくれると思ってるアホがいるようだ。
575デフォルトの名無しさん (ワッチョイ 0791-2b7E)
2020/04/23(木) 11:14:19.21ID:4BIs3zJP0 というか、解析に苦労しないんだったら、糞コードなんて言葉は無い筈なんだ。
どんなコードでも誰にでも理解出来て楽に読めるんだったら、綺麗なコードを心がけるというモチベーションすら起こらない。
どんなコードでも誰にでも理解出来て楽に読めるんだったら、綺麗なコードを心がけるというモチベーションすら起こらない。
576デフォルトの名無しさん (ワッチョイ 0791-2b7E)
2020/04/23(木) 11:21:51.04ID:4BIs3zJP0577デフォルトの名無しさん (ドコグロ MM40-f1XF)
2020/04/23(木) 11:24:06.86ID:5d1aUYQtM >>573-574
え゛っ、まじでドキュメント作成で四苦八苦してるって事で誤魔化せるとか思ってるの?
> 調査費用と時間貰ってドキュメント起こすことになっても四苦八苦は変わらん。
そうすると何が何と変わらんのか説明できないだろw
え゛っ、まじでドキュメント作成で四苦八苦してるって事で誤魔化せるとか思ってるの?
> 調査費用と時間貰ってドキュメント起こすことになっても四苦八苦は変わらん。
そうすると何が何と変わらんのか説明できないだろw
578デフォルトの名無しさん (ドコグロ MM02-f1XF)
2020/04/23(木) 11:25:47.51ID:RuZIZsvvM579デフォルトの名無しさん (ワッチョイ 0791-2b7E)
2020/04/23(木) 11:32:54.64ID:4BIs3zJP0 >>577
えっ?
何度も言ってるのにまだ分からない?
「解析に四苦八苦するのは、時間とお金を貰っても変わらない」という日本語が分からない?
時間と金を貰って無くても、貰ってても、どっちでも四苦八苦はするという意味が理解出来て無かった?
日本人ですか?
えっ?
何度も言ってるのにまだ分からない?
「解析に四苦八苦するのは、時間とお金を貰っても変わらない」という日本語が分からない?
時間と金を貰って無くても、貰ってても、どっちでも四苦八苦はするという意味が理解出来て無かった?
日本人ですか?
580デフォルトの名無しさん (ワッチョイ 0791-2b7E)
2020/04/23(木) 11:35:35.71ID:4BIs3zJP0 日本語が通用しない程だから始末に負えない。
"引き継ぎ"も碌に理解してないぐらいだからな。
"引き継ぎ"も碌に理解してないぐらいだからな。
581デフォルトの名無しさん (ラクッペペ MM34-eHaU)
2020/04/23(木) 12:11:20.51ID:NJImmJ6MM >>564
これから2週間が山場
これから2週間が山場
582デフォルトの名無しさん (ワッチョイ 7349-xf6K)
2020/04/23(木) 13:25:04.48ID:UY53iXGX0 うまい
583デフォルトの名無しさん (ブーイモ MM5e-l81y)
2020/04/23(木) 18:35:48.75ID:9EduGPIyM レベルの高すぎる人同士での口論はとてももったいない
俺はIf Then ElseとFor nextは辛うじて理解できそうなレベル
Do untillとかNextとかloopとか使いこなしたい条件が山ほどあって泣きそうだけど
ここの上級者たちは独学で覚えた?
同じ事やろうと調べでもどのサイトもいろんなやり方でどれが良いかも分からない
ここで聞くとさらりと答えだしてくれる人ってどういう頭の良さしてんだろ
俺はIf Then ElseとFor nextは辛うじて理解できそうなレベル
Do untillとかNextとかloopとか使いこなしたい条件が山ほどあって泣きそうだけど
ここの上級者たちは独学で覚えた?
同じ事やろうと調べでもどのサイトもいろんなやり方でどれが良いかも分からない
ここで聞くとさらりと答えだしてくれる人ってどういう頭の良さしてんだろ
584デフォルトの名無しさん (ワッチョイ 0a2f-Hty+)
2020/04/23(木) 18:56:32.85ID:9prkr8SY0 基本的には場数
よい文章を書くには良い文章をたくさん読め
良いプログラムを書くためには良いプログラムをたくさん読めば良いんだが
まあ、よいプログラムをたくさん提供してくれる場がなぁ
よい文章を書くには良い文章をたくさん読め
良いプログラムを書くためには良いプログラムをたくさん読めば良いんだが
まあ、よいプログラムをたくさん提供してくれる場がなぁ
585デフォルトの名無しさん (ブーイモ MMed-l81y)
2020/04/23(木) 19:20:59.53ID:R7RBEdEaM >>584
ここ見てけばまぁ覚えやすいとか無難で間違いないとかそういったサイトありますか?
広告たくさんのサイトだろうが藁にもすがりたいほど身につけたくて…ノイローゼ気味
俺の業務に絞った時にVBAで何でもやらせようと無理せずに関数はエクセルである程度制御した方が後々メンテが楽なのがわかったので
恐らくloopの使い方を理解しないと絶対に乗り越えられない大きな壁が。。
それを作れたら後は数値の変更や応用でいけそうだけど脳が焼き付いてる
ここ見てけばまぁ覚えやすいとか無難で間違いないとかそういったサイトありますか?
広告たくさんのサイトだろうが藁にもすがりたいほど身につけたくて…ノイローゼ気味
俺の業務に絞った時にVBAで何でもやらせようと無理せずに関数はエクセルである程度制御した方が後々メンテが楽なのがわかったので
恐らくloopの使い方を理解しないと絶対に乗り越えられない大きな壁が。。
それを作れたら後は数値の変更や応用でいけそうだけど脳が焼き付いてる
586デフォルトの名無しさん (スップ Sd9e-Op/G)
2020/04/23(木) 20:03:22.67ID:6e93QXlJd587デフォルトの名無しさん (ワッチョイ acce-1Gce)
2020/04/23(木) 20:05:39.90ID:weP1rIDx0588デフォルトの名無しさん (ワッチョイ 0a2f-Hty+)
2020/04/23(木) 20:07:24.44ID:9prkr8SY0589デフォルトの名無しさん (ワッチョイ 91ad-R0M4)
2020/04/23(木) 20:16:07.01ID:IA7mxVD60590デフォルトの名無しさん (アウアウエー Sa6a-e618)
2020/04/23(木) 21:01:06.09ID:72/Ynz/da まずは何をしたいか、エクセルでこんな便利なのを作りたいとか、ヴィジョンをもてれば上達は早いと思う
591デフォルトの名無しさん (ワッチョイ 91ad-R0M4)
2020/04/23(木) 21:28:22.57ID:IA7mxVD60 そうだね
エクセルは小物ツール作りやすいから
実益を兼ねた練習を積めば上達するな
エクセルは小物ツール作りやすいから
実益を兼ねた練習を積めば上達するな
592デフォルトの名無しさん (ワッチョイ b701-Bsub)
2020/04/23(木) 22:53:32.79ID:nGyVitY00 VBAなんて本腰入れてテキストで勉強するにはコスパ悪すぎる言語だと思うが・・・
「VBA」にやりたいことを付けてググったソースをコピペした方が早くないか?
「VBA」にやりたいことを付けてググったソースをコピペした方が早くないか?
593デフォルトの名無しさん (スプッッ Sd7e-1Gce)
2020/04/23(木) 23:13:30.67ID:/AKn5LJ4d 本を見てプログラミングを勉強する時代は終わりだと思ってる
紙の方が読みやすいと思う人が多いだろうけど、本格的にやろうとしたらオンラインのドキュメントは必須だし、
画面上で文字を読む訓練をして慣れていかないと、いつまでも能率が上がらない
紙の方が読みやすいと思う人が多いだろうけど、本格的にやろうとしたらオンラインのドキュメントは必須だし、
画面上で文字を読む訓練をして慣れていかないと、いつまでも能率が上がらない
594デフォルトの名無しさん (ワッチョイ 0a2f-Hty+)
2020/04/24(金) 00:05:26.21ID:4FfGWszI0595デフォルトの名無しさん (ワッチョイ 91ad-R0M4)
2020/04/24(金) 00:19:26.49ID:aTlSrVmc0596デフォルトの名無しさん (ワッチョイ 7ab5-l81y)
2020/04/24(金) 02:40:01.82ID:vJ3u9sjq0597デフォルトの名無しさん (ワッチョイ 0791-2b7E)
2020/04/24(金) 03:41:33.98ID:zeBff4Qi0 >>596
そうだな、取りあえず質問する時に相手に伝わるか考えながら質問した方が良いかな。
>元のVBAのフォーマット
???
これは何のこと?
何を言ってるの?
シートのコピーで書式だけコピーしたいということ?
だったらそんな機能は無いと思うから、あとは工夫でどうにかする。
Rangeの書式だけコピーはあるから、シートの追加と書式だけコピーの複合にするか、俺ならそもそもコピー元の書式を全部コードで実現してシ一トの追加とその書式を実現するコ一ドでやる。
右に追加というのが特定のシート(4月)の右というならコピーだろうがシートの追加だろうがそのものずばりの引数がある。
WorkSheets.Copy、WorkSheets.AddでクグるとMSのぺージが見つかるから、そこにサンプルもある。
一番右に追加していくというなら、上の特定のシートの部分に最後のシートを指定すれば良い。
最後のシートってのはシートの指定方法は名前と番号の2通り有るので、今回は番号で最後を表現する。
最後ってのはシート数が7個あれば7番目になる。
この場合の7個ってのはシートの個数。
シートの個数はこれまたそのものずばりのプロパティがある。
(これも上のページのサンプルそのもの。)
そうだな、取りあえず質問する時に相手に伝わるか考えながら質問した方が良いかな。
>元のVBAのフォーマット
???
これは何のこと?
何を言ってるの?
シートのコピーで書式だけコピーしたいということ?
だったらそんな機能は無いと思うから、あとは工夫でどうにかする。
Rangeの書式だけコピーはあるから、シートの追加と書式だけコピーの複合にするか、俺ならそもそもコピー元の書式を全部コードで実現してシ一トの追加とその書式を実現するコ一ドでやる。
右に追加というのが特定のシート(4月)の右というならコピーだろうがシートの追加だろうがそのものずばりの引数がある。
WorkSheets.Copy、WorkSheets.AddでクグるとMSのぺージが見つかるから、そこにサンプルもある。
一番右に追加していくというなら、上の特定のシートの部分に最後のシートを指定すれば良い。
最後のシートってのはシートの指定方法は名前と番号の2通り有るので、今回は番号で最後を表現する。
最後ってのはシート数が7個あれば7番目になる。
この場合の7個ってのはシートの個数。
シートの個数はこれまたそのものずばりのプロパティがある。
(これも上のページのサンプルそのもの。)
598デフォルトの名無しさん (ワッチョイ ae01-NnsP)
2020/04/24(金) 04:14:59.23ID:zODr3mBK0599デフォルトの名無しさん (ワッチョイ 2e9a-2b7E)
2020/04/24(金) 09:43:49.82ID:5xvA7bcI0 >>583
いつも同じこと感じています
いつも同じこと感じています
600デフォルトの名無しさん (ワッチョイ d4da-1Gce)
2020/04/24(金) 12:06:13.25ID:EzpkTm1A0 他の人は知らんが俺は独学でコマンドマニュアル見たり参考書買ったりしてた
例えば数値でも加算を繰り返してどこでエラーがでるかとかを
実際にサンプル作って実行することをひたすら満足いくまで繰り返したりしたな
学校の勉強と並行してやってたからいつも寝不足だったし
例えば数値でも加算を繰り返してどこでエラーがでるかとかを
実際にサンプル作って実行することをひたすら満足いくまで繰り返したりしたな
学校の勉強と並行してやってたからいつも寝不足だったし
601デフォルトの名無しさん (ワッチョイ b701-Bsub)
2020/04/24(金) 16:20:00.14ID:Enw/zcBV0 >>594
学習するのに何が効率いいかっていうよりも、
VBAを学習すること自体に対するリターンって意味でコスパが悪いと言いたかった
特にオフィス製品上でしか実行できない、やりたいことは単純な事が多いっていう特性上、
学習することでググったソースのコピペ以上に得られる物はあるのか?と。
内容を理解することでちゃんとしたコードが書けるってメリットはあるかもしれないが、
VBAで綺麗なコードを書けてもねぇ・・・
VBAのコードを拘るリソースは他に回すべきだ
学習するのに何が効率いいかっていうよりも、
VBAを学習すること自体に対するリターンって意味でコスパが悪いと言いたかった
特にオフィス製品上でしか実行できない、やりたいことは単純な事が多いっていう特性上、
学習することでググったソースのコピペ以上に得られる物はあるのか?と。
内容を理解することでちゃんとしたコードが書けるってメリットはあるかもしれないが、
VBAで綺麗なコードを書けてもねぇ・・・
VBAのコードを拘るリソースは他に回すべきだ
602デフォルトの名無しさん (ワッチョイ 7ab5-l81y)
2020/04/24(金) 17:35:34.28ID:vJ3u9sjq0 Sub Macro1()
ChDir "c:\tmp"
f = Dir("*.txt")
c = 1
Do While f <> ""
Open f For Input As #1
For r = 1 To 6
Line Input #1, s
Cells(r, c) = Split(s, vbTab)(2)
Next
Close #1
f = Dir
c = c + 1
Loop
End Sub
ここで↑の
「指定した場所に入ってる全てのテキストのエクセル化した時の特定の列と行をエクセルシートに一気に読み込む」
という神の様なコードを教わったものです。
列と行の開始はこのままでいいのですが、テキストの行が空白になるまでエクセルに読み込む
というやり方に変える事は可能でしょうか。
これが職場の環境を大きく変えすぎて2人、本当に課からいなくなって現場に飛びました。
効率化しすぎて他でも応用できるようにしろと皆の前で大声で怒鳴られ泣けても知恵が出てこない
ゆっくり本読んで覚えていきたいにもまず最優先で作れと室内であんなに大声で怒られて
ネットで調べても調べ方すらわかっていなく
異動したい、何卒すみません
ChDir "c:\tmp"
f = Dir("*.txt")
c = 1
Do While f <> ""
Open f For Input As #1
For r = 1 To 6
Line Input #1, s
Cells(r, c) = Split(s, vbTab)(2)
Next
Close #1
f = Dir
c = c + 1
Loop
End Sub
ここで↑の
「指定した場所に入ってる全てのテキストのエクセル化した時の特定の列と行をエクセルシートに一気に読み込む」
という神の様なコードを教わったものです。
列と行の開始はこのままでいいのですが、テキストの行が空白になるまでエクセルに読み込む
というやり方に変える事は可能でしょうか。
これが職場の環境を大きく変えすぎて2人、本当に課からいなくなって現場に飛びました。
効率化しすぎて他でも応用できるようにしろと皆の前で大声で怒鳴られ泣けても知恵が出てこない
ゆっくり本読んで覚えていきたいにもまず最優先で作れと室内であんなに大声で怒られて
ネットで調べても調べ方すらわかっていなく
異動したい、何卒すみません
603デフォルトの名無しさん (ラクッペペ MM34-eHaU)
2020/04/24(金) 18:38:54.34ID:GFko4FvkM >>601
普段の仕事がExcelならコスパいいだろ
普段の仕事がExcelならコスパいいだろ
604デフォルトの名無しさん (ワッチョイ ae01-NnsP)
2020/04/24(金) 18:40:11.73ID:zODr3mBK0 一から十まですべて教わらないとできないような人はやめたほうがいいわ
実力以上のコードを教わったところで何も応用できず周囲の期待には応えられない
5chで教えてもらって作りました
これ以上は分かりませんって正直に言えばいい
実力以上のコードを教わったところで何も応用できず周囲の期待には応えられない
5chで教えてもらって作りました
これ以上は分かりませんって正直に言えばいい
605デフォルトの名無しさん (ワッチョイ 0a2f-Hty+)
2020/04/24(金) 18:49:29.12ID:4FfGWszI0 ForをDoにして、NextをLoop Until S=""かな
つか、二人分の人件費が浮くような作業なら、ちゃんとした会社にシステム化たのめよ
つか、二人分の人件費が浮くような作業なら、ちゃんとした会社にシステム化たのめよ
606デフォルトの名無しさん (ワッチョイ 0a2f-Hty+)
2020/04/24(金) 18:51:14.82ID:4FfGWszI0 まあこれで動いたら>>602がさらなるドツボにはまるのをニヤニヤしようぜ
607デフォルトの名無しさん (オッペケ Sr5f-iTDC)
2020/04/24(金) 18:53:25.05ID:K658YEair 効率化して上司から怒鳴られるってどんな職場だ
上司がクソすぎ
上司がクソすぎ
608デフォルトの名無しさん (ワッチョイ 91ad-R0M4)
2020/04/24(金) 19:12:23.15ID:aTlSrVmc0 背伸びしても上手くいかないもんだね?
609デフォルトの名無しさん (ワッチョイ acce-1Gce)
2020/04/24(金) 19:16:29.79ID:sF/e/OCE0610デフォルトの名無しさん (ワッチョイ 6cac-xf6K)
2020/04/25(土) 00:00:18.00ID:/63/MmUO0 コードくれくれ君
611デフォルトの名無しさん (ワッチョイ 211f-unif)
2020/04/25(土) 00:25:36.55ID:gc0CgTOT0 画像上部の21〜20日間隔の日付のセルの塗り潰しを下の1〜30日間隔の日付に塗り潰し変えたいんですがどうしたらいいですか?
・上部をforで2行目の最終列までループ
・ifで塗り潰し判定がTrue
・???
・???
・下部をforで2行目の最終列までループ
・ifで対象年月日間隔だったら塗り潰す
と、こんなイメージなのかなと思ってはいるんですが、??らへんの処理がわかりません。
https://i.imgur.com/I6hiP5r.png
・上部をforで2行目の最終列までループ
・ifで塗り潰し判定がTrue
・???
・???
・下部をforで2行目の最終列までループ
・ifで対象年月日間隔だったら塗り潰す
と、こんなイメージなのかなと思ってはいるんですが、??らへんの処理がわかりません。
https://i.imgur.com/I6hiP5r.png
612デフォルトの名無しさん (ワッチョイ 968e-A1EL)
2020/04/25(土) 00:30:28.43ID:XJisoOEM0 次から次へと馬鹿が出てくるのはなぜ?
613デフォルトの名無しさん (ワッチョイ 1e09-Btmo)
2020/04/25(土) 00:36:47.04ID:8o24J96M0 Functionの任意引数(Optional)なのですが、初期値はstringかlong型のみだけしかダメなのでしょうか?
シート名objectの引数で、省略したときにActivesheetを返したいのですが、「定数式が〜」のエラーが出てしまいます。
やはり、IFとIsMissingを使うしかないでしょうか。
Function test(Optional objシート名 As Worksheet = ActiveSheet)
End Function
シート名objectの引数で、省略したときにActivesheetを返したいのですが、「定数式が〜」のエラーが出てしまいます。
やはり、IFとIsMissingを使うしかないでしょうか。
Function test(Optional objシート名 As Worksheet = ActiveSheet)
End Function
614デフォルトの名無しさん (ワッチョイ 64a7-XnmY)
2020/04/25(土) 00:42:53.79ID:l10aoXHL0 そもそも引数とか型の意味理解してる?
615デフォルトの名無しさん (ワッチョイ acce-1Gce)
2020/04/25(土) 00:44:19.85ID:7EOq2zNJ0616デフォルトの名無しさん (ワッチョイ acce-1Gce)
2020/04/25(土) 00:50:04.58ID:7EOq2zNJ0 >>611
その画像で説明すると、D3:K3をコピーしてC10:J10に書式貼り付けするだけでは
その画像で説明すると、D3:K3をコピーしてC10:J10に書式貼り付けするだけでは
617デフォルトの名無しさん (ワッチョイ 4602-sVZV)
2020/04/25(土) 00:52:04.34ID:lAut8yEK0618デフォルトの名無しさん (スフッ Sd94-S0vp)
2020/04/25(土) 00:53:34.41ID:bDeh6DKGd >>611
塗りつぶす条件がわからなければわからない
塗りつぶす条件がわからなければわからない
619デフォルトの名無しさん (ワッチョイ 4c2c-Hty+)
2020/04/25(土) 00:58:07.71ID:a/EKdpBi0 >>602
Ruby なら、row.empty? で空行かどうか、判別できるけど
require 'csv'
CSV.foreach( "input.csv" ) do | row | # 1行ずつ処理
break if row.empty? # 空行なら、終了
puts "#{ row[ 0 ] } : #{ row[ 1 ] }"
end
入力ファイル・input.csv
あ,いう
a,bc
1,23
出力
あ : いう
a : bc
Ruby なら、row.empty? で空行かどうか、判別できるけど
require 'csv'
CSV.foreach( "input.csv" ) do | row | # 1行ずつ処理
break if row.empty? # 空行なら、終了
puts "#{ row[ 0 ] } : #{ row[ 1 ] }"
end
入力ファイル・input.csv
あ,いう
a,bc
1,23
出力
あ : いう
a : bc
620デフォルトの名無しさん (ワッチョイ acce-1Gce)
2020/04/25(土) 01:41:16.85ID:7EOq2zNJ0 >>602
読み込みを止める条件が空行とEOFの2つになると、とたんに処理が面倒になるんだよな
こういう時はLine Inputを別Functionに飛ばすとすっきりするんだけど、とりあえず汚い方法で書いてみた
Sub Macro1()
ChDir "c:\tmp"
f = Dir("*.txt")
c = 1
Do While f <> ""
Open f For Input As #1
s = "s"
r = 1
Do While Not EOF(1) And s <> ""
Line Input #1, s
If s <> "" Then Cells(r, c) = Split(s, vbTab)(2)
r = r + 1
Loop
Close #1
f = Dir
c = c + 1
Loop
End Sub
読み込みを止める条件が空行とEOFの2つになると、とたんに処理が面倒になるんだよな
こういう時はLine Inputを別Functionに飛ばすとすっきりするんだけど、とりあえず汚い方法で書いてみた
Sub Macro1()
ChDir "c:\tmp"
f = Dir("*.txt")
c = 1
Do While f <> ""
Open f For Input As #1
s = "s"
r = 1
Do While Not EOF(1) And s <> ""
Line Input #1, s
If s <> "" Then Cells(r, c) = Split(s, vbTab)(2)
r = r + 1
Loop
Close #1
f = Dir
c = c + 1
Loop
End Sub
621デフォルトの名無しさん (ワッチョイ 1e09-w2of)
2020/04/25(土) 02:03:19.21ID:8o24J96M0 >>615
そうなのですね、ありがとうございました。
そうなのですね、ありがとうございました。
622デフォルトの名無しさん (ドコグロ MM46-f1XF)
2020/04/25(土) 05:53:44.03ID:SWq+pauNM >>613
If 文使うしかないのはその通りだけど IsMissing() は引数の型を Variant にする必要があるのであまり良くない
Function test(Optional objシート名 As Worksheet = Nothing) ' Nothing は既定値なので指定しなくてもいい
If objシート名 Is Nothing Then Set objシート名 = ActiveSheet
End Function
ってやるのが定番
ググると同じことをやってる人がいる
http://akashi-keirin.hatenablog.com/entry/2018/03/01/081945
If 文使うしかないのはその通りだけど IsMissing() は引数の型を Variant にする必要があるのであまり良くない
Function test(Optional objシート名 As Worksheet = Nothing) ' Nothing は既定値なので指定しなくてもいい
If objシート名 Is Nothing Then Set objシート名 = ActiveSheet
End Function
ってやるのが定番
ググると同じことをやってる人がいる
http://akashi-keirin.hatenablog.com/entry/2018/03/01/081945
623デフォルトの名無しさん (ワッチョイ 211f-unif)
2020/04/25(土) 13:56:29.68ID:gc0CgTOT0624デフォルトの名無しさん (オッペケ Sr5f-iTDC)
2020/04/25(土) 14:00:26.62ID:jVtajgfWr >>623
元データのc列を消せば良いのでは
元データのc列を消せば良いのでは
625デフォルトの名無しさん (スフッ Sd94-S0vp)
2020/04/25(土) 14:21:24.23ID:y/AcnKi/d >>623
上部のD列から見ていって塗ってあったら下部の一つ左の列を塗る
上部のD列から見ていって塗ってあったら下部の一つ左の列を塗る
626デフォルトの名無しさん (ワッチョイ bb5e-1Gce)
2020/04/25(土) 20:10:34.52ID:Z1BPhcf20 下記のコードで出力範囲1と2をまとめるにはどうすればいいでしょうか
Set OutputRange = Worksheets("Sheet1").Range("B2:C10")
For i = 1 To 9
For j = 1 To 2
For k = 2 To 3
OutputRange(i, j) = WorksheetFunction.VLookup(SerchKey(i, 1), SerchRange, k, False)
だとB,C列ともに列番号3をの値になる、というか列番号2で処理した後列番号3でもう一度処理を
しているため、すべて列番号3の値になるんじゃないかとは思うのですが、具体的にどう直せば
いいか教えていただけるとありがたいです
Sub Test()
Dim SerchKey As Range '検索値
Dim SerchRange As Range '検索範囲
Dim OutputRange1 As Range '出力範囲1 B列
Dim OutputRange2 As Range '出力範囲2 C列
Dim i As Long
Set SerchKey = Worksheets("Sheet1").Range("A2:A10")
Set SerchRange = Workbooks("Book1.xlsx").Worksheets("Sheet1").Range("A2:C10")
Set OutputRange1 = Worksheets("Sheet1").Range("B2:B10")
Set OutputRange2 = Worksheets("Sheet1").Range("C2:C10")
For i = 1 To 9
OutputRange1(i, 1) = WorksheetFunction.VLookup(SerchKey(i, 1), SerchRange, 2, False)
OutputRange2(i, 1) = WorksheetFunction.VLookup(SerchKey(i, 1), SerchRange, 3, False)
Next i
End Sub
Set OutputRange = Worksheets("Sheet1").Range("B2:C10")
For i = 1 To 9
For j = 1 To 2
For k = 2 To 3
OutputRange(i, j) = WorksheetFunction.VLookup(SerchKey(i, 1), SerchRange, k, False)
だとB,C列ともに列番号3をの値になる、というか列番号2で処理した後列番号3でもう一度処理を
しているため、すべて列番号3の値になるんじゃないかとは思うのですが、具体的にどう直せば
いいか教えていただけるとありがたいです
Sub Test()
Dim SerchKey As Range '検索値
Dim SerchRange As Range '検索範囲
Dim OutputRange1 As Range '出力範囲1 B列
Dim OutputRange2 As Range '出力範囲2 C列
Dim i As Long
Set SerchKey = Worksheets("Sheet1").Range("A2:A10")
Set SerchRange = Workbooks("Book1.xlsx").Worksheets("Sheet1").Range("A2:C10")
Set OutputRange1 = Worksheets("Sheet1").Range("B2:B10")
Set OutputRange2 = Worksheets("Sheet1").Range("C2:C10")
For i = 1 To 9
OutputRange1(i, 1) = WorksheetFunction.VLookup(SerchKey(i, 1), SerchRange, 2, False)
OutputRange2(i, 1) = WorksheetFunction.VLookup(SerchKey(i, 1), SerchRange, 3, False)
Next i
End Sub
627デフォルトの名無しさん (ワッチョイ 6cac-xf6K)
2020/04/25(土) 20:18:25.81ID:/63/MmUO0 このスレにくる質問見ると、俺に読解力がないのかなといつも思ってしまう
628デフォルトの名無しさん (ワッチョイ 7c7c-sVZV)
2020/04/25(土) 21:06:29.21ID:OxGSjC7Q0 >>626
VLOOKUPは答えを複数返す関数じゃない
VLOOKUPは答えを複数返す関数じゃない
629デフォルトの名無しさん (ワッチョイ 7c7c-sVZV)
2020/04/25(土) 21:14:48.21ID:OxGSjC7Q0 あ、質問の意味が今わかったわ
入れるセル変えずに関数の列番だけ変えてたらそりゃ同じ値しか入らない
中身がどうなってるか想像じゃなくて実際に確認すればどう直せばいいかわかるだろう
入れるセル変えずに関数の列番だけ変えてたらそりゃ同じ値しか入らない
中身がどうなってるか想像じゃなくて実際に確認すればどう直せばいいかわかるだろう
630デフォルトの名無しさん (ワッチョイ bb5e-1Gce)
2020/04/25(土) 22:19:20.97ID:Z1BPhcf20 質問が説明不足だったようで失礼しました
出力範囲が複数列ある場合にそれぞれの列を「出力範囲1」「出力範囲2」と設定していけばいいという
ところまではわかったのですが、検索範囲が100列、出力範囲が99列、というように数が多くなった場合、
出力範囲のB列には検索範囲の列番号2 OutputRange1(i, 1)…… SerchRange, 2
出力範囲のC列には検索範囲の列番号3 OutputRange2(i, 1)…… SerchRange, 3
出力範囲のD列には検索範囲の列番号4 OutputRange3(i, 1)…… SerchRange, 4
・
・
・
という処理を99行書かずに変数で処理できないでしょうか、というのが質問の意図です
出力範囲が複数列ある場合にそれぞれの列を「出力範囲1」「出力範囲2」と設定していけばいいという
ところまではわかったのですが、検索範囲が100列、出力範囲が99列、というように数が多くなった場合、
出力範囲のB列には検索範囲の列番号2 OutputRange1(i, 1)…… SerchRange, 2
出力範囲のC列には検索範囲の列番号3 OutputRange2(i, 1)…… SerchRange, 3
出力範囲のD列には検索範囲の列番号4 OutputRange3(i, 1)…… SerchRange, 4
・
・
・
という処理を99行書かずに変数で処理できないでしょうか、というのが質問の意図です
631デフォルトの名無しさん (ワッチョイ 38ef-1Gce)
2020/04/25(土) 22:58:11.29ID:u3Cmop/t0 j の役割って何だろう?
632デフォルトの名無しさん (ワッチョイ 7c7c-sVZV)
2020/04/25(土) 23:00:40.63ID:OxGSjC7Q0 だから>>626のループの中身がどうなってるか見て順番考えたらいいんじゃないの
633デフォルトの名無しさん (ワッチョイ acce-1Gce)
2020/04/26(日) 00:49:06.95ID:1a87l4R/0 >>630
同じような処理を繰り返したい時は配列を使う
Dim OutputRange(10) As Range '出力範囲
Dim i As Integer
For i = 2 To 3
Set OutputRange(i) = Worksheets("Sheet1").Range(Cells(i, 2), Cells(i, 10))
Next
みたいな感じで、変数を使えば、何十個あっても簡単にまとめられる
同じような処理を繰り返したい時は配列を使う
Dim OutputRange(10) As Range '出力範囲
Dim i As Integer
For i = 2 To 3
Set OutputRange(i) = Worksheets("Sheet1").Range(Cells(i, 2), Cells(i, 10))
Next
みたいな感じで、変数を使えば、何十個あっても簡単にまとめられる
634デフォルトの名無しさん (ワッチョイ ae6d-A1EL)
2020/04/26(日) 02:34:49.27ID:LqR8iAxp0 なぜ馬鹿ばっかり来るのか
635デフォルトの名無しさん (ワッチョイ d4da-1Gce)
2020/04/26(日) 06:16:38.34ID:+0ojgInc0 馬鹿ばっかり来るところにいるからじゃね
ってか自力でできるやつは質問なんかしないだろ
ってか自力でできるやつは質問なんかしないだろ
636デフォルトの名無しさん (ワッチョイ 9602-TRCj)
2020/04/26(日) 09:08:46.83ID:rBKIu5KT0637デフォルトの名無しさん (ワッチョイ 2c7f-KNAb)
2020/04/26(日) 10:18:45.13ID:LS9zyJ5J0 複数あるコマンドボタンをどれを押しても一つの処理に入り、押されたボタンを取得して、ボタンごとに判断処理ってできないのでしょうか。(activeXです)
具体的にはシリアルポートの処理で以下のことをやりたいです。
コマンドボタンが機器名、その機器ごとに存在する複数のコンボボックスにポート名やボーレートを設定。
あるコマンドボタンを押したら、対応するコンボボックス郡の設定を取得してポートを開く。(ポートオープンはモジュールに記述したWritefileでやってます)
ポートオープンで返ってきたハンドラが例外でなければ、押されたコマンドボタンの色を変更し、名前を"機器名+接続中"に変更。
また、コマンドボタンを押した時点で対応ポートのハンドラが存在すれば、そのポートを閉じて(ハンドラも初期化)、押されたコマンドボタンの色を戻す。
現在はボタンごとのプロージャを作成し、同じような処理を逐一書いてますが、機器が複数あって大変見にくいのと、記述が大変なのでまとめたいです。
具体的にはシリアルポートの処理で以下のことをやりたいです。
コマンドボタンが機器名、その機器ごとに存在する複数のコンボボックスにポート名やボーレートを設定。
あるコマンドボタンを押したら、対応するコンボボックス郡の設定を取得してポートを開く。(ポートオープンはモジュールに記述したWritefileでやってます)
ポートオープンで返ってきたハンドラが例外でなければ、押されたコマンドボタンの色を変更し、名前を"機器名+接続中"に変更。
また、コマンドボタンを押した時点で対応ポートのハンドラが存在すれば、そのポートを閉じて(ハンドラも初期化)、押されたコマンドボタンの色を戻す。
現在はボタンごとのプロージャを作成し、同じような処理を逐一書いてますが、機器が複数あって大変見にくいのと、記述が大変なのでまとめたいです。
638デフォルトの名無しさん (ワッチョイ 0791-2b7E)
2020/04/26(日) 10:39:23.22ID:oDDaXD960639デフォルトの名無しさん (ワッチョイ acce-1Gce)
2020/04/26(日) 10:39:50.30ID:1a87l4R/0640デフォルトの名無しさん (ワッチョイ acce-1Gce)
2020/04/26(日) 10:44:46.17ID:1a87l4R/0 >>637
同じような処理なら、ボタンクリックのイベントの中で変数にボタン名を設定してから、別に用意した共通部分のSubを呼び出せばいい
ヒント
http://woodbook.kir.jp/excel/vba/button_row.html
同じような処理なら、ボタンクリックのイベントの中で変数にボタン名を設定してから、別に用意した共通部分のSubを呼び出せばいい
ヒント
http://woodbook.kir.jp/excel/vba/button_row.html
641デフォルトの名無しさん (ワッチョイ 0791-2b7E)
2020/04/26(日) 10:46:58.47ID:oDDaXD960 おっ、それを貼るとは。
じゃあ、俺も。
以下の一連を全て理解し、使いこなせれば大分変わる。
http://addinbox.sakura.ne.jp/Breakthrough_P-Ctrl_Arrays.htm
じゃあ、俺も。
以下の一連を全て理解し、使いこなせれば大分変わる。
http://addinbox.sakura.ne.jp/Breakthrough_P-Ctrl_Arrays.htm
642デフォルトの名無しさん (ワッチョイ 2c7f-KNAb)
2020/04/26(日) 11:53:55.15ID:LS9zyJ5J0 ありがとうございました
手っ取り早くやれそうな感じではなさそうです
手っ取り早くやれそうな感じではなさそうです
643デフォルトの名無しさん (ワッチョイ 3563-Btmo)
2020/04/26(日) 12:03:24.99ID:3XXXGp1c0644デフォルトの名無しさん (ワッチョイ 0791-2b7E)
2020/04/26(日) 12:07:36.34ID:oDDaXD960 >>642
一応言っておくと、途中迄なら出来るかもしれないし(それで十分かも)、読み物としても読んどくと良いと思う。
一応言っておくと、途中迄なら出来るかもしれないし(それで十分かも)、読み物としても読んどくと良いと思う。
645デフォルトの名無しさん (ワッチョイ 2c7f-KNAb)
2020/04/26(日) 14:41:44.01ID:LS9zyJ5J0 >>642
紹介頂いたサイトの大元になるmougを参考にして押したボタンの色変えぐらいまでしかできません
この処理にシート画面上のコンボボックスの値を関連付けて取得する仕掛を入れたいのですが検討つかず
紹介頂いたサイトの大元になるmougを参考にして押したボタンの色変えぐらいまでしかできません
この処理にシート画面上のコンボボックスの値を関連付けて取得する仕掛を入れたいのですが検討つかず
646デフォルトの名無しさん (アウアウウー Saab-CfBV)
2020/04/26(日) 15:58:20.12ID:io10sll9a 各ボタン押した最初の処理だけわけて
引数つけて共通処理に飛ばせばよくね
引数つけて共通処理に飛ばせばよくね
647デフォルトの名無しさん (ワッチョイ 7ab5-l81y)
2020/04/26(日) 18:40:06.52ID:IAQJrydO0 全部ここの人達のおかげで完全に憑き物が取れて教えて貰ったURLと持ってる本を参考にひたすら初歩のルールから愚直に
打っては実行を繰り返し練習してます
Do loop
For next
特にこれの破壊力は凄いですね
これだけの為に覚える価値すらあると感じました
あとはmsgboxの使い方の面白さ
感謝しかないです
Do loopでwhileとuntilがあるけどよほど複雑でない場合
書き方変えるだけで同じ処理させられる感じですが
基本どっちかでで使い方覚えていったほうがいいものですかね
質問というよりただただ楽しくここの上級者たちにも癖だったり自分ルールがあるのかなと
ああ楽しい
打っては実行を繰り返し練習してます
Do loop
For next
特にこれの破壊力は凄いですね
これだけの為に覚える価値すらあると感じました
あとはmsgboxの使い方の面白さ
感謝しかないです
Do loopでwhileとuntilがあるけどよほど複雑でない場合
書き方変えるだけで同じ処理させられる感じですが
基本どっちかでで使い方覚えていったほうがいいものですかね
質問というよりただただ楽しくここの上級者たちにも癖だったり自分ルールがあるのかなと
ああ楽しい
648デフォルトの名無しさん (ワッチョイ acce-1Gce)
2020/04/26(日) 19:35:22.95ID:1a87l4R/0649デフォルトの名無しさん (ワッチョイ acce-1Gce)
2020/04/26(日) 19:37:28.36ID:1a87l4R/0 よくない例
While Not 終了条件
適切な例
Until 終了条件
While Not 終了条件
適切な例
Until 終了条件
650デフォルトの名無しさん (ワッチョイ 7ab5-l81y)
2020/04/26(日) 20:25:45.60ID:IAQJrydO0 >>649
Sub ループwhile()
Dim i As Long
i = 1
Do While Cells(i, 1) <> ""
Cells(i, 3) = Cells(i, 1) + 10
i = i + 1
Loop
MsgBox i & "回whileでループ"
End Sub
Sub ループuntil()
Dim i As Long i = 1
Do Until Cells(i, 1) = ""
Cells(i, 3) = Cells(i, 1) + 10
i = i + 1
Loop
MsgBox i & "回untilでループ"
End Sub
なるほど、空白になるまでループってのを練習してました
後者の方が一般的ですかね
勉強になります。
Sub ループwhile()
Dim i As Long
i = 1
Do While Cells(i, 1) <> ""
Cells(i, 3) = Cells(i, 1) + 10
i = i + 1
Loop
MsgBox i & "回whileでループ"
End Sub
Sub ループuntil()
Dim i As Long i = 1
Do Until Cells(i, 1) = ""
Cells(i, 3) = Cells(i, 1) + 10
i = i + 1
Loop
MsgBox i & "回untilでループ"
End Sub
なるほど、空白になるまでループってのを練習してました
後者の方が一般的ですかね
勉強になります。
651デフォルトの名無しさん (アウアウエー Sa6a-WAKu)
2020/04/26(日) 21:08:58.39ID:RAbG8RW6a 僕は wihle しか使わない
理由は c言語にないから
あと、なんとなくだけど、wihle と until は混ぜて使わない方がよい気がする
いや、混在する人がいても文句は言わないと思うけど
理由は c言語にないから
あと、なんとなくだけど、wihle と until は混ぜて使わない方がよい気がする
いや、混在する人がいても文句は言わないと思うけど
652デフォルトの名無しさん (アウアウエー Sa6a-WAKu)
2020/04/26(日) 21:11:31.65ID:RAbG8RW6a653デフォルトの名無しさん (ワッチョイ 048f-1Gce)
2020/04/26(日) 21:21:03.37ID:wya5Zv+N0 ド・モルガンの法則なんてのを知ってるとループ条件が
劇的に易しく書けるようになったりするよ
劇的に易しく書けるようになったりするよ
>>653
ドモルガンは法則ではなくて公理すなわち前提条件なのでは?
ドモルガンは法則ではなくて公理すなわち前提条件なのでは?
655デフォルトの名無しさん (ワッチョイ acce-1Gce)
2020/04/26(日) 22:54:36.35ID:1a87l4R/0 Not Is Nothing
英語の否定文って日本語とロジックが違うから直感的にわかりにくい
英語の否定文って日本語とロジックが違うから直感的にわかりにくい
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 今年の漢字 [ぐれ★]
- 今年の漢字は「熊」に決定! 相次ぐクマ被害 去年は「金」 [冬月記者★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ★3 [冬月記者★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★4 [蚤の市★]
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 ★4 [蚤の市★]
- 【おこめ券】物価高対策の“おこめ券”全米販は1枚477円で販売へ 鈴木農水大臣「国民の皆様に活用いただきやすいよう工夫いただいた」 [ぐれ★]
- 【速報】今年の漢字、「熊」!wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 過労死の遺族、高市に抗議したため冗談抜きでボロクソに叩かれる [637618824]
- アメリカがよく食ってそう肉を練り込んで缶詰みたいなやつあれくってみたい
- 【速報】今年のゲームオブザイヤー、Clair Obscur: Expedition 33 [779938112]
- たつき鯨のせいで人生狂ったんだが
- 地蔵 [268244553]
