Excel VBA 質問スレ Part65at TECH
Excel VBA 質問スレ Part65 - 暇つぶし2ch521:デフォルトの名無しさん (ワッチョイ 0791-N0F4)
20/04/22 11:01:53 TBrfp0e60.net
>>512
本当に分かってないとはw

調査費用と時間貰ってドキュメント起こすことになっても四苦八苦は変わらん。
お前はバカだから金と時間そ貰えればただ穴を掘って、その場でその穴を埋めるだけの仕事やらされても喜ぶかもしれんが、金や時間貰っても糞コ一ド読まされるのは普通の奴にゃ苦痛なんだよ。

522:デフォルトの名無しさん (ワッチョイ 0791-N0F4)
20/04/22 11:03:37 TBrfp0e60.net
>>512
フリーだと激安だってwww
本当に何も分かって無いんだな。
VBAの場合は月70万も行けば良い方だ。

523:デフォルトの名無しさん (ドコグロ MMa8-f1XF)
20/04/22 11:40:39 yd/WL25UM.net
>>521
> 調査費用と時間貰ってドキュメント起こすことになっても四苦八苦は変わらん。
ゴメンな、糞会社はそうなんだろうなw

>> まともな会社なら受ける時に調査費用と時間をもらってドキュメントを起こし直す

まあ、そもそもまともな会社は
>>522
>> 日本語の理解力がないのかな?
>> 自慢にもならないことをいちいち書くとかバカじゃね?

まさかと思うけど3,000円/h相当の俺スゲーとか思ってる?w

524:デフォルトの名無しさん (ドコグロ MM85-f1XF)
20/04/22 11:48:33 JonPflQBM.net
すまん途中で送信しちまった

>>521
> 調査費用と時間貰ってドキュメント起こすことになっても四苦八苦は変わらん。
ゴメンな、糞会社はそうなんだろね
お疲れ様

>> まともな会社なら受ける時に調査費用と時間をもらってドキュメントを起こし直す

まあ、そもそもまともな会社は他社の糞コードの保守なんて滅多に受けないし

で、何ができたんだ?
>>510では過去形だけど>>325では今まさにやってることになってるけど、偶然この一週間で終わったのかな?
ますます辻褄合わせが大変になってるぞw

>>522
>> 日本語の理解力がないのかな?
>> 自慢にもならないことをいちいち書くとかバカじゃね?

まさかと思うけど3,000円/h相当の俺スゲーとか思ってる?

525:デフォルトの名無しさん (ワッチョイ 6cac-xf6K)
20/04/22 12:11:09 tj5eX5rX0.net
こういうのってこうやって段々長文になっていくよなw

526:デフォルトの名無しさん (ブーイモ MMfd-1Gce)
20/04/22 12:39:44 rSQQIqcfM.net
客は選べない
クソな仕事でも黙々とこなすやつが結局は上に上がってく
文句ばっかり言うやつはそこまでの人間

527:デフォルトの名無しさん (ワッチョイ 0791-N0F4)
20/04/22 12:42:08 TBrfp0e60.net
>>523
プw
他人の書いたプログラム見たことすら無いとはw

まともに開発に絡んだことがあれば100人が100人他人のコードなんて読みたく無いんだよ。

引き継ぎという言葉も知らない、ググることも出来ない、保守という仕事が何をやるかも分からない。
二―トが背伸びは恥の元だぞ。

528:デフォルトの名無しさん (ワッチョイ 0791-N0F4)
20/04/22 12:44:28 TBrfp0e60.net
3000円/hが自慢?
何を言ってるんだ?
3000円/hは最低限の話だが。

アホだからそこに反応する。
2000円/hが主題だと言ってるだろうに。

529:デフォルトの名無しさん
20/04/22 12:47:10.01 TBrfp0e60.net
>>526
客は選べない。
クソな仕事でも黙々とこなすやつが結局は上に上がってく
文句は客のいない所で発散する。
当然だがね。

530:デフォルトの名無しさん
20/04/22 12:51:44.35 M+DGBLrr0.net
暇なのはわかるけど
何日ひっぱるつもりなん

531:デフォルトの名無しさん
20/04/22 12:58:15.17 4ePZRvo/M.net
たびたび済みません
元のVBAのフォーマットから
新しいブックをコピーを教えて頂いたのですが
コピーする度に1回目にコピーしたブック内のシートの右に足されていく みたいな設定は可能ですか?

具体的に言うと4月分をコピー
その次に5月分、6月分とコピーすると
初回(4月分)にコピーしたブックのシート右に足されていく
さらに欲張ると元のフォーマットで4月とか5月とか特定のセルに入力した文字がそのままシート名になってくれる
すみませんがやり方ありましたら御教授を宜しくお願いします。

532:デフォルトの名無しさん (ドコグロ MMa8-f1XF)
20/04/22 13:20:05 RF8jAbo1M.net
>>527-529
指摘されて顔真っ赤になって3連投とかw

> 3000円/hは最低限の話だが。
自ら最低限を認めるとか偉いやん
で、なんでそんな恥ずかしい金額をいきなり出してきたんだ?w

533:デフォルトの名無しさん
20/04/22 14:11:10.05 PH7WDass0.net
>>514
例えばA!A1にリンゴっていれると単価だか購入数だかをB!から拾ってきてA!C1~F1に入れる感じの物?
多分VBAというよりエクセル関数VLOOKUPで済む話かと
VLOOKUP(A!A1, B!A:F, 3)

534:デフォルトの名無しさん (ワッチョイ 0101-g4zf)
20/04/22 14:31:43 YnJWUcMz0.net
社内システムで書類となったものの特定の場所の値とエクセルの上の特定の場所の値が合っているか照合したいです。

そういったマクロ組む場合
1. 書類をスキャナーでpdfにする。
2. pdfをocr機能使って照合に使うシートとは違うシートにデータ転記。
3. 2.でデータ転記したシートの値と確認元のシートの値を照合する。

というのがぼんやり浮かんでるんですが、1-3までの流れでよりスマートな方法があるなら上の流れをどう変えたらいいか教えていただけませんか?
よろしくお願いいたします。

535:デフォルトの名無しさん (ラクッペペ MM34-eHaU)
20/04/22 14:47:15 lF2YSEgcM.net
マクロで何とかなるスキャナーやOCRならいいんじゃないの?

536:デフォルトの名無しさん (ワッチョイ 0791-N0F4)
20/04/22 15:04:32 TBrfp0e60.net
>>532
日本語、ダメ過ぎwww
ここまで壊滅的に日本語出来ない奴は仕事も出来ないからニートになるw

"引き継ぎ"で恥かいたからってむきになるなよw

537:デフォルトの名無しさん
20/04/22 15:26:26.42 7QCXjzFAM.net
今度はニートとか言い出したぞw
恥ずかしい奴
>> 結局説明できなくなって理解力ガーとか低能が逃げる時によくやる手で笑うわ

538:デフォルトの名無しさん
20/04/22 17:33:29.11 jDnlGnaS0.net
>>534
OCR読み取りまでできるなら転記とかいらんけど
社内システムに、その数字をシステム的に参照できるAPIを準備してもらえよ

539:デフォルトの名無しさん
20/04/22 17:47:01.75 YnJWUcMz0.net
>>535-538
csvファイル関連のapiもかなり時間かかったので開発をつついてみます。
ocr使ってデータ転記しないと私の能力と使えるソフトやapiでは座標指定ができないから回りくどいやり方するつもりです。
今のところGoogleクラウドのocrがapi公開してるからそれにしようかなとぼんやり思ってるとこです。
アドバイスありがとうございました。

540:デフォルトの名無しさん (ワッチョイ 0791-2b7E)
20/04/22 18:42:39 TBrfp0e60.net
>>537
最低限ってのは俺が受けるとしたら最低限3000円/hは貰わないと受けないという話。

こんなの分からないのお前以外いない。
これまでのやり取りも酷いし、"引き継ぎ"についても分からない。
致命的だよ。

541:デフォルトの名無しさん (ワッチョイ 0791-2b7E)
20/04/22 18:50:25 TBrfp0e60.net
>>537
あと、その変な引用とアンカ―どうにかならんのか?

542:デフォルトの名無しさん
20/04/22 19:58:37.32 UdDG4RF8M.net
>>540
> 最低限ってのは俺が受けるとしたら最低限3000円/hは貰わないと受けないという話。
まじで言ってるのか?
勤め人ならそれでいいけどフリーだと税金や年金とかも自己負担だからやり始めた時ならともかく普通は5,000円/hでも不安だよ
> これまでのやり取りも酷いし、"引き継ぎ"についても分からない。
そういう御託は…
で、何ができたんだ?
>>510では過去形だけど>>325では今まさにやってることになってるけど、偶然この一週間で終わったのかな?
にまともなレスできるようになってからほざけよw
>>541
どこにアンカーがあるんだよw
あと>>の意味もわからんとか馬鹿すぎる

543:デフォルトの名無しさん (ワッチョイ d4da-1Gce)
20/04/22 20:13:28 bDGlwx+F0.net
おまえら能ある鷹は爪を隠すってことわざ知っているか?

544:デフォルトの名無しさん (ワッチョイ acce-1Gce)
20/04/22 20:18:29 Al75grru0.net
ここは質問スレ
ルールを守らないやつには誰も仕事なんか頼まない

545:デフォルトの名無しさん
20/04/22 22:05:00.09 M+DGBLrr0.net
爪出してないしとか言いそう

546:デフォルトの名無しさん
20/04/22 22:35:47.35 86ULQnrYa.net
そもそも爪がない

547:デフォルトの名無しさん
20/04/22 23:56:54.01 ioC/S0KO0.net
CSVはComma Separated Valueの略ですが、
Commaはわざわざ略さなくても、既に,があるんだから、そのまま,SVでいいと思うんですよ。

548:デフォルトの名無しさん (ワッチョイ 7cda-1Gce)
20/04/23 00:04:13 WrYMug8t0.net
で、VBAの質問なんですが、何にもないプロシージャって、何か使い道はありますか?
普通は全然意味ないと思うんですが、なんていうか0番スプライト的な感じで。

Sub Test()
End Sub

549:デフォルトの名無しさん (ワッチョイ 91ad-R0M4)
20/04/23 00:22:20 IA7mxVD60.net
>>547
TXT,,SVより
TXT,CSVの方が誤読しにくい

550:デフォルトの名無しさん (ワッチョイ 7c7c-sVZV)
20/04/23 00:30:31 /DzsyJb70.net
誤読とか以前にわかりにくすぎるわ
一体何がいいのか

551:デフォルトの名無しさん
20/04/23 01:00:46.60 tvgCM2UH0.net
今さらcsvの命名にケチつけるなんて、極論が好きな反抗期なんだろ
中身のないプロシージャの意味とか、それ質問する理由も書かないしな

552:デフォルトの名無しさん (アウアウウー Saab-AGUX)
20/04/23 02:10:50 q29uZhI+a.net
>>548
あるかないかならある

553:デフォルトの名無しさん
20/04/23 02:29:45.14 4BIs3zJP0.net
>>542
バーカw
VBAで5000/hの仕事なんてあるわけ無いだろw
ニートはこれだからw
御託?
お前が"引き継ぎ"という言葉の使い方について反論出来なくなっているわけだがw
反論あるならどうぞw
>>510での過去形について、分からんのか?
レスもまともに読めないのか。
>>477を読めw
引用に>>使うアホはいない。

554:デフォルトの名無しさん (スップ Sd9e-Op/G)
20/04/23 03:04:53 Yau2aIj5d.net
木曜日にワッチョイが切り替わるんだよなあ
めんどくせえ

555:デフォルトの名無しさん (ドコグロ MM46-f1XF)
20/04/23 05:14:45 Bp33q84zM.net
> 今、他人のそういうコードで四苦八苦してる。

> ついでに言っとくと、正直に言えばたった今じゃねえ。
> 2週間程度前の話だ。

なんだそのバレバレな言い訳はw
流石に恥ずかしくないのか?

そもそもそれが本当だったとしても>>476
> 出来てるから今、四苦八苦してるんだが。
が意味不明なのは変わらんし
何ができて、何に四苦八苦してるのか書いてみ

> 引用に>>使うアホはいない。
まじでわかってないのかよ…
自分自身への引用を明示してるだけだぞ
馬鹿すぎるわ

556:デフォルトの名無しさん (オッペケ Sr39-xf6K)
20/04/23 08:02:32 WPkfNDtBr.net
VBA質問スレで必死になるのはちょっと恥ずかしいよなあw

557:デフォルトの名無しさん
20/04/23 09:42:16.36 4BIs3zJP0.net
>>555
日本語勉強しろw
言い訳?
何を言ってる?
何の言い訳だよw
四苦八苦してる(た)ことに何も変わりはないぞ。
これのどこが言い訳になるんだ?
2週間前に四苦八苦してたとしても、こういう掲示板で発言する時は今四苦八苦してると発言することは十分あり得ると>>477で言ってる。
発言の主旨が変わらないからな。
そして、それがお前に何か指摘されたとか、自己弁護の為に言っているわけじゃないことは時系列から明白。
言い訳?

558:デフォルトの名無しさん (ワッチョイ 0791-2b7E)
20/04/23 09:51:26 4BIs3zJP0.net
>>555
解析する時間もドキュメント作成する時間も費用も貰っているが他人のコード解析するのに四苦八苦してるんだがね。
これのどこが変なのかさっぱり分からん。

何ができて何に四苦八苦してるかの前に、お前は俺が何が出来てないと思ってるのか言えよ。

今までの話じゃ、お前の主張は解析する時間、ドキュメント作成する時間や費用を貰うと四苦八苦することが無くなるということのようだが、そんなこたあねえぞ。

559:デフォルトの名無しさん (ドコグロ MMa8-f1XF)
20/04/23 09:51:33 dNGhRpxuM.net
>>557
「何ができて」の説明が一切なくて失笑

560:デフォルトの名無しさん (ワッチョイ 0791-2b7E)
20/04/23 09:52:35 4BIs3zJP0.net
自分自身への引用でも>>なんて使わん。
>で十分だし、普通。

561:デフォルトの名無しさん (ドコグロ MM46-f1XF)
20/04/23 09:55:24 TqAmz8xEM.net
>>558
ドキュメント作成してるのに四苦八苦してるなら役に立たないドキュメントを作ったお前がアホなだけだけど?

あと、せめてレスを1つにまとめろよ
なぜかバカは同じ内容に複数レスで返すんだよな
まあ低能にまとめる能力を期待しても無駄かなw

562:デフォルトの名無しさん (ワッチョイ 0791-2b7E)
20/04/23 09:55:54 4BIs3zJP0.net
>>559
バーカw
先にお前が、俺の何が出来ていないと思ってるのか説明しろ。
お前が俺の話のどこが理解出来て無いのかはこっちにゃ分からんのだよ。

563:デフォルトの名無しさん (ドコグロ MM36-f1XF)
20/04/23 09:56:33 6OPJP51MM.net
>>560
自身のレスとお前のアホレスを混同されたくないだけw

564:デフォルトの名無しさん (ワッチョイ 4642-PxOI)
20/04/23 09:57:01 BmbwEUgo0.net
いつまで続くんだコレ

565:デフォルトの名無しさん (ワッチョイ 0791-2b7E)
20/04/23 09:57:12 4BIs3zJP0.net
>>561
バカ?
本当にバカ?

解析してドキュメント作るんだよ。
解析に四苦八苦してるんだぞ。

嗤えるわw

566:デフォルトの名無しさん (ワッチョイ 0791-2b7E)
20/04/23 09:58:37 4BIs3zJP0.net
>>563
そんなもんは内容でわかる。
というか、むしろ邪魔で分かりにくいから>>541で指摘してるんだが。

567:デフォルトの名無しさん (ドコグロ MM40-f1XF)
20/04/23 10:00:29 80sunLmwM.net
>>562
アホなの?
>>476の「できてるから」の説明しろって話
自分で書いたことも理解してないのかよw

568:デフォルトの名無しさん (ワッチョイ 0791-2b7E)
20/04/23 10:03:00 4BIs3zJP0.net
>>567
だから、金と時間を貰ってるというのが出来てると言ってる。

やり取り理解出来てる?
お前の指摘はまともな会社なら金と時間を貰ってるというものだった筈だが。

569:デフォルトの名無しさん (ワッチョイ 0791-2b7E)
20/04/23 10:09:52 4BIs3zJP0.net
最低限、やり取りから解析に四苦八苦してるというのはまともな奴なら分かる筈なんだが。
とすれば、お前の言う金と時間を貰って、今まさにドキュメント起こす為の解析中(だった)なのが分かる筈。

これが前提なんだからドキュメントが既に出来上がってるなんてアホな誤解してたことは無いと信じたい。

570:デフォルトの名無しさん (オッペケ Srea-xf6K)
20/04/23 10:18:34 pyQ+IxFJr.net
関係ない人はこいつらをNGにすればいいで

571:デフォルトの名無しさん (アウアウエー Sa6a-BE4G)
20/04/23 10:24:08 EgVweMy+a.net
まだやってるのか
完全に自粛ストレスだろうな

572:デフォルトの名無しさん (ドコグロ MM46-f1XF)
20/04/23 10:29:06 TPtGWxWfM.net
>>566
専ブラで引用の引用したことないのか?
まあその手の文句は専ブラの作者に言ってくれ

>>568-569
> だから、金と時間を貰ってるというのが出来てると言ってる。
あれ?
> 調査費用と時間貰ってドキュメント起こすことになっても四苦八苦は変わらん。
って糞ドキュメントしか作成できないアホって自白してますけど?
発注した客可哀想
まあ脳内だろうから問題ないか…

> やり取り理解出来てる?
うん、どんどんボロが出てるねw

573:デフォルトの名無しさん (ワッチョイ 0791-2b7E)
20/04/23 11:08:06 4BIs3zJP0.net
>>572
???
ドキュメント作るための解析に四苦八苦してるのと、出来たドキュメントの出来に何の関係が?

お前がドキュメント作ったこと無いのがこれでバレたw

574:デフォルトの名無しさん (ワッチョイ 0791-2b7E)
20/04/23 11:11:09 4BIs3zJP0.net
何か、お金と時間貰うとロボットが勝手に解析してドキュメント作ってくれると思ってるアホがいるようだ。

575:デフォルトの名無しさん
20/04/23 11:14:19.21 4BIs3zJP0.net
というか、解析に苦労しないんだったら、糞コードなんて言葉は無い筈なんだ。
どんなコードでも誰にでも理解出来て楽に読めるんだったら、綺麗なコードを心がけるというモチベーションすら起こらない。

576:デフォルトの名無しさん (ワッチョイ 0791-2b7E)
20/04/23 11:21:51 4BIs3zJP0.net
>>572
あと自白っていうのがこれまたおかしい。
最初の主張通り、何ら矛盾が無いんだから自白じゃ無いだろ。
それとも、まだ理解出来て無い?

577:デフォルトの名無しさん (ドコグロ MM40-f1XF)
20/04/23 11:24:06 5d1aUYQtM.net
>>573-574
え゛っ、まじでドキュメント作成で四苦八苦してるって事で誤魔化せるとか思ってるの?

> 調査費用と時間貰ってドキュメント起こすことになっても四苦八苦は変わらん。
そうすると何が何と変わらんのか説明できないだろw

578:デフォルトの名無しさん (ドコグロ MM02-f1XF)
20/04/23 11:25:47 RuZIZsvvM.net
>>575-576
レスをまとめることもできない無能
しかも内容スカスカw

579:デフォルトの名無しさん (ワッチョイ 0791-2b7E)
20/04/23 11:32:54 4BIs3zJP0.net
>>577
えっ?
何度も言ってるのにまだ分からない?

「解析に四苦八苦するのは、時間とお金を貰っても変わらない」という日本語が分からない?

時間と金を貰って無くても、貰ってても、どっちでも四苦八苦はするという意味が理解出来て無かった?

日本人ですか?

580:デフォルトの名無しさん (ワッチョイ 0791-2b7E)
20/04/23 11:35:35 4BIs3zJP0.net
日本語が通用しない程だから始末に負えない。
"引き継ぎ"も碌に理解してないぐらいだからな。

581:デフォルトの名無しさん
20/04/23 12:11:20.51 NJImmJ6MM.net
>>564
これから2週間が山場

582:デフォルトの名無しさん (ワッチョイ 7349-xf6K)
20/04/23 13:25:04 UY53iXGX0.net
うまい

583:デフォルトの名無しさん (ブーイモ MM5e-l81y)
20/04/23 18:35:48 9EduGPIyM.net
レベルの高すぎる人同士での口論はとてももったいない
俺はIf Then ElseとFor nextは辛うじて理解できそうなレベル

Do untillとかNextとかloopとか使いこなしたい条件が山ほどあって泣きそうだけど
ここの上級者たちは独学で覚えた?
同じ事やろうと調べでもどのサイトもいろんなやり方でどれが良いかも分からない

ここで聞くとさらりと答えだしてくれる人ってどういう頭の良さしてんだろ

584:デフォルトの名無しさん (ワッチョイ 0a2f-Hty+)
20/04/23 18:56:32 9prkr8SY0.net
基本的には場数
よい文章を書くには良い文章をたくさん読め
良いプログラムを書くためには良いプログラムをたくさん読めば良いんだが
まあ、よいプログラムをたくさん提供してくれる場がなぁ

585:デフォルトの名無しさん (ブーイモ MMed-l81y)
20/04/23 19:20:59 R7RBEdEaM.net
>>584
ここ見てけばまぁ覚えやすいとか無難で間違いないとかそういったサイトありますか?
広告たくさんのサイトだろうが藁にもすがりたいほど身につけたくて…ノイローゼ気味

俺の業務に絞った時にVBAで何でもやらせようと無理せずに関数はエクセルである程度制御した方が後々メンテが楽なのがわかったので

恐らくloopの使い方を理解しないと絶対に乗り越えられない大きな壁が。。
それを作れたら後は数値の変更や応用でいけそうだけど脳が焼き付いてる

586:デフォルトの名無しさん (スップ Sd9e-Op/G)
20/04/23 20:03:22 6e93QXlJd.net
>>583
本当にレベルが高い人は口論なんかしないんだよ
スレを荒らすのはだいたい無職

587:デフォルトの名無しさん (ワッチョイ acce-1Gce)
20/04/23 20:05:39 weP1rIDx0.net
>>585
まずはここにあるサンプルを、コピペせずに自分でキーボードから入力してみ
URLリンク(excelvba.pc-users.net)

588:デフォルトの名無しさん (ワッチョイ 0a2f-Hty+)
20/04/23 20:07:24 9prkr8SY0.net
>>585
本買え
初心者むけのをまず数冊

昔はプログラム系の雑誌結構あったんだがなぁ

589:デフォルトの名無しさん (ワッチョイ 91ad-R0M4)
20/04/23 20:16:07 IA7mxVD60.net
>>583
VBAの本って多いから学習しやすいはず

プログラマなら他言語の経験から
基本的な制御構文くらいは自然と分かる
VBAはプログラム言語としてはやさしい方

590:デフォルトの名無しさん (アウアウエー Sa6a-e618)
20/04/23 21:01:06 72/Ynz/da.net
まずは何をしたいか、エクセルでこんな便利なのを作りたいとか、ヴィジョンをもてれば上達は早いと思う

591:デフォルトの名無しさん
20/04/23 21:28:22.57 IA7mxVD60.net
そうだね
エクセルは小物ツール作りやすいから
実益を兼ねた練習を積めば上達するな

592:デフォルトの名無しさん
20/04/23 22:53:32.79 nGyVitY00.net
VBAなんて本腰入れてテキストで勉強するにはコスパ悪すぎる言語だと思うが・・・
「VBA」にやりたいことを付けてググったソースをコピペした方が早くないか?

593:デフォルトの名無しさん (スプッッ Sd7e-1Gce)
20/04/23 23:13:30 /AKn5LJ4d.net
本を見てプログラミングを勉強する時代は終わりだと思ってる
紙の方が読みやすいと思う人が多いだろうけど、本格的にやろうとしたらオンラインのドキュメントは必須だし、
画面上で文字を読む訓練をして慣れていかないと、いつまでも能率が上がらない

594:デフォルトの名無しさん (ワッチョイ 0a2f-Hty+)
20/04/24 00:05:26 4FfGWszI0.net
>>592
とりあえず動くものが作れればいいというなら、まあそうだな

>>593
学習リソースとしては、本かWEBかに本質的な差はないと思うが
中身の問題で、WEBは本ほど系統立てて編集されていないところが多いと思う

辞書だけで外国語マスターできるような人ならWEBだけでもいいけどな

595:デフォルトの名無しさん (ワッチョイ 91ad-R0M4)
20/04/24 00:19:26 aTlSrVmc0.net
>>592
>>593
書籍の学習は今でも必要だと
思うしさらにVBAだけでなく
他言語の経験があるといいな

VBAのスレで言うのも何だが
VBAプロパーのプログラムは
垢抜けない泥臭いのが多くて
その辺PHPと同じ感触がする

596:デフォルトの名無しさん (ワッチョイ 7ab5-l81y)
20/04/24 02:40:01 vJ3u9sjq0.net
>>531
どなたか…四苦八苦して終わりません、、
お時間ある方がいましたらお助けを

597:デフォルトの名無しさん
20/04/24 03:41:33.98 zeBff4Qi0.net
>>596
そうだな、取りあえず質問する時に相手に伝わるか考えながら質問した方が良いかな。
>元のVBAのフォーマット
???
これは何のこと?
何を言ってるの?
シートのコピーで書式だけコピーしたいということ?
だったらそんな機能は無いと思うから、あとは工夫でどうにかする。
Rangeの書式だけコピーはあるから、シートの追加と書式だけコピーの複合にするか、俺ならそもそもコピー元の書式を全部コードで実現してシ一トの追加とその書式を実現するコ一ドでやる。
右に追加というのが特定のシート(4月)の右というならコピーだろうがシートの追加だろうがそのものずばりの引数がある。
WorkSheets.Copy、WorkSheets.AddでクグるとMSのぺージが見つかるから、そこにサンプルもある。
一番右に追加していくというなら、上の特定のシートの部分に最後のシートを指定すれば良い。
最後のシートってのはシートの指定方法は名前と番号の2通り有るので、今回は番号で最後を表現する。
最後ってのはシート数が7個あれば7番目になる。
この場合の7個ってのはシートの個数。
シートの個数はこれまたそのものずばりのプロパティがある。
(これも上のページのサンプルそのもの。)

598:デフォルトの名無しさん
20/04/24 04:14:59.23 zODr3mBK0.net
>>531
5回読んだけど理解不能
画像や絵使って説明してほしいわ

599:デフォルトの名無しさん (ワッチョイ 2e9a-2b7E)
20/04/24 09:43:49 5xvA7bcI0.net
>>583
いつも同じこと感じています

600:デフォルトの名無しさん
20/04/24 12:06:13.25 EzpkTm1A0.net
他の人は知らんが俺は独学でコマンドマニュアル見たり参考書買ったりしてた
例えば数値でも加算を繰り返してどこでエラーがでるかとかを
実際にサンプル作って実行することをひたすら満足いくまで繰り返したりしたな
学校の勉強と並行してやってたからいつも寝不足だったし

601:デフォルトの名無しさん (ワッチョイ b701-Bsub)
20/04/24 16:20:00 Enw/zcBV0.net
>>594
学習するのに何が効率いいかっていうよりも、
VBAを学習すること自体に対するリターンって意味でコスパが悪いと言いたかった

特にオフィス製品上でしか実行できない、やりたいことは単純な事が多いっていう特性上、
学習することでググったソースのコピペ以上に得られる物はあるのか?と。

内容を理解することでちゃんとしたコードが書けるってメリットはあるかもしれないが、
VBAで綺麗なコードを書けてもねぇ・・・
VBAのコードを拘るリソースは他に回すべきだ

602:デフォルトの名無しさん
20/04/24 17:35:34.28 vJ3u9sjq0.net
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人、本当に課からいなくなって現場に飛びました。
効率化しすぎて他でも応用できるようにしろと皆の前で大声で怒鳴られ泣けても知恵が出てこない
ゆっくり本読んで覚えていきたいにもまず最優先で作れと室内であんなに大声で怒られて
ネットで調べても調べ方すらわかっていなく
異動したい、何卒すみません

603:デフォルトの名無しさん (ラクッペペ MM34-eHaU)
20/04/24 18:38:54 GFko4FvkM.net
>>601
普段の仕事がExcelならコスパいいだろ

604:デフォルトの名無しさん (ワッチョイ ae01-NnsP)
20/04/24 18:40:11 zODr3mBK0.net
一から十まですべて教わらないとできないような人はやめたほうがいいわ
実力以上のコードを教わったところで何も応用できず周囲の期待には応えられない
5chで教えてもらって作りました
これ以上は分かりませんって正直に言えばいい

605:デフォルトの名無しさん (ワッチョイ 0a2f-Hty+)
20/04/24 18:49:29 4FfGWszI0.net
ForをDoにして、NextをLoop Until S=""かな
つか、二人分の人件費が浮くような作業なら、ちゃんとした会社にシステム化たのめよ

606:デフォルトの名無しさん (ワッチョイ 0a2f-Hty+)
20/04/24 18:51:14 4FfGWszI0.net
まあこれで動いたら>>602がさらなるドツボにはまるのをニヤニヤしようぜ

607:デフォルトの名無しさん (オッペケ Sr5f-iTDC)
20/04/24 18:53:25 K658YEair.net
効率化して上司から怒鳴られるってどんな職場だ
上司がクソすぎ

608:デフォルトの名無しさん (ワッチョイ 91ad-R0M4)
20/04/24 19:12:23 aTlSrVmc0.net
背伸びしても上手くいかないもんだね?

609:デフォルトの名無しさん (ワッチョイ acce-1Gce)
20/04/24 19:16:29 sF/e/OCE0.net
>>602
ここに解決方法が書いてある
URLリンク(www.manpowergroup.jp)

610:デフォルトの名無しさん
20/04/25 00:00:18.00 /63/MmUO0.net
コードくれくれ君

611:デフォルトの名無しさん
20/04/25 00:25:36.55 gc0CgTOT0.net
画像上部の21~20日間隔の日付のセルの塗り潰しを下の1~30日間隔の日付に塗り潰し変えたいんですがどうしたらいいですか?
・上部をforで2行目の最終列までループ
・ifで塗り潰し判定がTrue
・???
・???
・下部をforで2行目の最終列までループ
・ifで対象年月日間隔だったら塗り潰す
と、こんなイメージなのかなと思ってはいるんですが、??らへんの処理がわかりません。
URLリンク(i.imgur.com)

612:デフォルトの名無しさん
20/04/25 00:30:28.43 XJisoOEM0.net
次から次へと馬鹿が出てくるのはなぜ?

613:デフォルトの名無しさん
20/04/25 00:36:47.04 8o24J96M0.net
Functionの任意引数(Optional)なのですが、初期値はstringかlong型のみだけしかダメなのでしょうか?
シート名objectの引数で、省略したときにActivesheetを返したいのですが、「定数式が~」のエラーが出てしまいます。
やはり、IFとIsMissingを使うしかないでしょうか。
Function test(Optional objシート名 As Worksheet = ActiveSheet)
End Function

614:デフォルトの名無しさん
20/04/25 00:42:53.79 l10aoXHL0.net
そもそも引数とか型の意味理解してる?

615:デフォルトの名無しさん
20/04/25 00:44:19.85 7EOq2zNJ0.net
>>613
規定値に使えるのは定数値だけ
変数、プロパティ、関数などは使えない
だからActiveSheetも対象外

616:デフォルトの名無しさん
20/04/25 00:50:04.58 7EOq2zNJ0.net
>>611
その画像で説明すると、D3:K3をコピーしてC10:J10に書式貼り付けするだけでは

617:デフォルトの名無しさん
20/04/25 00:52:04.34 lAut8yEK0.net
>>611
D2からK3をコピーしてC9に貼り付けて C2をK9に貼り付けるだけじゃないの?
VBA使わない方が早そうなんだけど

618:デフォルトの名無しさん
20/04/25 00:53:34.41 bDeh6DKGd.net
>>611
塗りつぶす条件がわからなければわからない

619:デフォルトの名無しさん (ワッチョイ 4c2c-Hty+)
20/04/25 00:58:07 a/EKdpBi0.net
>>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

620:デフォルトの名無しさん
20/04/25 01:41:16.85 7EOq2zNJ0.net
>>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

621:デフォルトの名無しさん (ワッチョイ 1e09-w2of)
20/04/25 02:03:19 8o24J96M0.net
>>615
そうなのですね、ありがとうございました。

622:デフォルトの名無しさん (ドコグロ MM46-f1XF)
20/04/25 05:53:44 SWq+pauNM.net
>>613
If 文使うしかないのはその通りだけど IsMissing() は引数の型を Variant にする必要があるのであまり良くない

Function test(Optional objシート名 As Worksheet = Nothing) ' Nothing は既定値なので指定しなくてもいい
If objシート名 Is Nothing Then Set objシート名 = ActiveSheet
End Function

ってやるのが定番
ググると同じことをやってる人がいる
URLリンク(akashi-keirin.hatenablog.com)

623:デフォルトの名無しさん (ワッチョイ 211f-unif)
20/04/25 13:56:29 gc0CgTOT0.net
>>616
>>617
名前は下にたくさん羅列してるし、日付も右にもっとずっとあるからVBでやりたい。
日付間隔が上下で違うからどうやったらいいかと思って。

for 上部名前シートループ
 for 下部名前シートループ
  if 名前同一
   for 上部名前年月日列ループ
    if 塗り潰し
     ※下部シート塗り潰し
    end if
next
end if
next
next

※の部分がどう書くのかがわかりません。

>>618
塗り潰す条件は同じ名前の人に対して同じ日付の所へ塗り潰す。

624:デフォルトの名無しさん (オッペケ Sr5f-iTDC)
20/04/25 14:00:26 jVtajgfWr.net
>>623
元データのc列を消せば良いのでは

625:デフォルトの名無しさん (スフッ Sd94-S0vp)
20/04/25 14:21:24 y/AcnKi/d.net
>>623
上部のD列から見ていって塗ってあったら下部の一つ左の列を塗る

626:デフォルトの名無しさん
20/04/25 20:10:34.52 Z1BPhcf20.net
下記のコードで出力範囲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

627:デフォルトの名無しさん
20/04/25 20:18:25.81 /63/MmUO0.net
このスレにくる質問見ると、俺に読解力がないのかなといつも思ってしまう

628:デフォルトの名無しさん
20/04/25 21:06:29.21 OxGSjC7Q0.net
>>626
VLOOKUPは答えを複数返す関数じゃない

629:デフォルトの名無しさん (ワッチョイ 7c7c-sVZV)
20/04/25 21:14:48 OxGSjC7Q0.net
あ、質問の意味が今わかったわ
入れるセル変えずに関数の列番だけ変えてたらそりゃ同じ値しか入らない
中身がどうなってるか想像じゃなくて実際に確認すればどう直せばいいかわかるだろう

630:デフォルトの名無しさん (ワッチョイ bb5e-1Gce)
20/04/25 22:19:20 Z1BPhcf20.net
質問が説明不足だったようで失礼しました
出力範囲が複数列ある場合にそれぞれの列を「出力範囲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)
20/04/25 22:58:11 u3Cmop/t0.net
j の役割って何だろう?

632:デフォルトの名無しさん (ワッチョイ 7c7c-sVZV)
20/04/25 23:00:40 OxGSjC7Q0.net
だから>>626のループの中身がどうなってるか見て順番考えたらいいんじゃないの

633:デフォルトの名無しさん
20/04/26 00:49:06.95 1a87l4R/0.net
>>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
みたいな感じで、変数を使えば、何十個あっても簡単にまとめられる

634:デフォルトの名無しさん
20/04/26 02:34:49.27 LqR8iAxp0.net
なぜ馬鹿ばっかり来るのか

635:デフォルトの名無しさん
20/04/26 03:25:04.50 3JmljcZq5
東大院生と本気数学トーク!!【数学ボーイZ 数学野郎さんコラボ】
URLリンク(www.youtube.com)
中3で数Ⅲ先取り!? 京大数学系YouTuber古賀さんに開成中高時代を聞く!
URLリンク(www.youtube.com)
開成から京大理学部に進学した理由とは?古賀さんに京大の実態を聞く!
URLリンク(www.youtube.com)
高校数学と何が違うの?大学数学でつまずかないためのアドバイス![大学数学準備講座1/4]
URLリンク(www.youtube.com)
数学は「定義」にかえることが大事!
URLリンク(www.youtube.com)
数を創る話〜自然数から複素数への構成〜
URLリンク(www.youtube.com)
高校生でも雰囲気だけ分かるガロア理論
URLリンク(www.youtube.com)
高校生でも雰囲気だけ分かるゼータ関数とリーマン予想
URLリンク(www.youtube.com)
【高校生でもわかる】いろいろな積分 リーマン,ルベーグ...
URLリンク(www.youtube.com)
大学で本気で学問をしたい人へのアドバイス
URLリンク(www.youtube.com)

636:デフォルトの名無しさん (ワッチョイ d4da-1Gce)
20/04/26 06:16:38 +0ojgInc0.net
馬鹿ばっかり来るところにいるからじゃね
ってか自力でできるやつは質問なんかしないだろ

637:デフォルトの名無しさん (ワッチョイ 9602-TRCj)
20/04/26 09:08:46 rBKIu5KT0.net
>>636
それググレカスキッズだと思う
>>612

638:デフォルトの名無しさん (ワッチョイ 2c7f-KNAb)
20/04/26 10:18:45 LS9zyJ5J0.net
複数あるコマンドボタンをどれを押しても一つの処理に入り、押されたボタンを取得して、ボタンごとに判断処理ってできないのでしょうか。(activeXです)

具体的にはシリアルポートの処理で以下のことをやりたいです。
コマンドボタンが機器名、その機器ごとに存在する複数のコンボボックスにポート名やボーレートを設定。
あるコマンドボタンを押したら、対応するコンボボックス郡の設定を取得してポートを開く。(ポートオープンはモジュールに記述したWritefileでやってます)
ポートオープンで返ってきたハンドラが例外でなければ、押されたコマンドボタンの色を変更し、名前を"機器名+接続中"に変更。
また、コマンドボタンを押した時点で対応ポートのハンドラが存在すれば、そのポートを閉じて(ハンドラも初期化)、押されたコマンドボタンの色を戻す。

現在はボタンごとのプロージャを作成し、同じような処理を逐一書いてますが、機器が複数あって大変見にくいのと、記述が大変なのでまとめたいです。

639:デフォルトの名無しさん
20/04/26 10:39:23.22 oDDaXD960.net
>>638
それ、まともにやろうとするとかなり上級レベル。
上級者を自認する人でも出来ない人が結構いる。

640:デフォルトの名無しさん
20/04/26 10:39:50.30 1a87l4R/0.net
>>638
「コントロール配列」でぐぐれ
URLリンク(www.asahi-net.or.jp)

641:デフォルトの名無しさん (ワッチョイ acce-1Gce)
20/04/26 10:44:46 1a87l4R/0.net
>>638
同じような処理なら、ボタンクリックのイベントの中で変数にボタン名を設定してから、別に用意した共通部分のSubを呼び出せばいい

ヒント
URLリンク(woodbook.kir.jp)

642:デフォルトの名無しさん
20/04/26 10:46:58.47 oDDaXD960.net
おっ、それを貼るとは。
じゃあ、俺も。
以下の一連を全て理解し、使いこなせれば大分変わる。
URLリンク(addinbox.sakura.ne.jp)

643:デフォルトの名無しさん (ワッチョイ 2c7f-KNAb)
20/04/26 11:53:55 LS9zyJ5J0.net
ありがとうございました
手っ取り早くやれそうな感じではなさそうです

644:デフォルトの名無しさん (ワッチョイ 3563-Btmo)
20/04/26 12:03:24 3XXXGp1c0.net
>>640
懐かしいなコントロール配列
昔はよく使ったが最近使ってないな

645:デフォルトの名無しさん (ワッチョイ 0791-2b7E)
20/04/26 12:07:36 oDDaXD960.net
>>643
一応言っておくと、途中迄なら出来るかもしれないし(それで十分かも)、読み物としても読んどくと良いと思う。

646:デフォルトの名無しさん (ワッチョイ 2c7f-KNAb)
20/04/26 14:41:44 LS9zyJ5J0.net
>>643
紹介頂いたサイトの大元になるmougを参考にして押したボタンの色変えぐらいまでしかできません
この処理にシート画面上のコンボボックスの値を関連付けて取得する仕掛を入れたいのですが検討つかず

647:デフォルトの名無しさん
20/04/26 15:58:20.12 io10sll9a.net
各ボタン押した最初の処理だけわけて
引数つけて共通処理に飛ばせばよくね

648:デフォルトの名無しさん (ワッチョイ 7ab5-l81y)
20/04/26 18:40:06 IAQJrydO0.net
全部ここの人達のおかげで完全に憑き物が取れて教えて貰ったURLと持ってる本を参考にひたすら初歩のルールから愚直に
打っては実行を繰り返し練習してます

Do loop
For next
特にこれの破壊力は凄いですね
これだけの為に覚える価値すらあると感じました
あとはmsgboxの使い方の面白さ
感謝しかないです

Do loopでwhileとuntilがあるけどよほど複雑でない場合
書き方変えるだけで同じ処理させられる感じですが
基本どっちかでで使い方覚えていったほうがいいものですかね
質問というよりただただ楽しくここの上級者たちにも癖だったり自分ルールがあるのかなと
ああ楽しい

649:デフォルトの名無しさん
20/04/26 19:35:22.95 1a87l4R/0.net
>>648
繰り返す条件が明確な場合はwhile、終了条件に着目した方が処理の流れがわかりやすい場合はuntil
適切に使い分けると、プログラム全体が読みやすくなって間違いが減る

650:デフォルトの名無しさん (ワッチョイ acce-1Gce)
20/04/26 19:37:28 1a87l4R/0.net
よくない例
While Not 終了条件

適切な例
Until 終了条件

651:デフォルトの名無しさん (ワッチョイ 7ab5-l81y)
20/04/26 20:25:45 IAQJrydO0.net
>>650

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

なるほど、空白になるまでループってのを練習してました
後者の方が一般的ですかね
勉強になります。

652:デフォルトの名無しさん
20/04/26 21:08:58.39 RAbG8RW6a.net
僕は wihle しか使わない
理由は c言語にないから
あと、なんとなくだけど、wihle と until は混ぜて使わない方がよい気がする
いや、混在する人がいても文句は言わないと思うけど

653:デフォルトの名無しさん
20/04/26 21:11:31.65 RAbG8RW6a.net
>>652
651 ですが、
理由は until はc言語にないから
です
すみません

654:デフォルトの名無しさん
20/04/26 21:21:03.37 wya5Zv+N0.net
ド・モルガンの法則なんてのを知ってるとループ条件が
劇的に易しく書けるようになったりするよ

655:
20/04/26 21:43:11.03 Whjp3eXS0.net
>>654
ドモルガンは法則ではなくて公理すなわち前提条件なのでは?

656:デフォルトの名無しさん (ワッチョイ acce-1Gce)
20/04/26 22:54:36 1a87l4R/0.net
Not Is Nothing
英語の否定文って日本語とロジックが違うから直感的にわかりにくい

657:デフォルトの名無しさん (アウアウエー Sa6a-1Gce)
20/04/26 23:37:47 x2OEBIkDa.net
少なくとも一回実行する必要があるとき until
一回も実行しないかもしれないとき while

658:デフォルトの名無しさん (ワッチョイ b05c-QpYc)
20/04/27 00:02:16 i1fhLCEO0.net
まぁ大事なのは自分の中でしっかりルールを固めておくこと
なんとなくで使い分けてると100%デスマに陥る

659:デフォルトの名無しさん (ワッチョイ 0a2f-Hty+)
20/04/27 00:02:40 pzY5bj450.net
>>657
VBAでは、それはDo側に書くかLoop側に書くか

WhileかUntilかはその条件の意味的なもので使い分けるのが本筋だろうけど
書くときの話ならどちらかに統一するルールでも良いと思う

660:デフォルトの名無しさん (ワッチョイ ca56-nG0h)
20/04/27 00:32:05 7P4A4QOo0.net
シート1のA1セルにx1、x2、x3と設定し、このx1~x3をそれぞれx1をB1セルに設定されている値、x2をC2セルに設定されている値に置換するにはどのようにすればよいのでしょうか
Replaceでは検索文字列および置換文字列を一つずつ指定できないため、検索したい文字列が増えるたびに処理が無駄に増えてしまうように思うため効率的なやり方を教えていただきたいです

661:デフォルトの名無しさん
20/04/27 03:31:04.69 Rq5FZkLb0.net
もっとわかるように説明してもらわんと

662:デフォルトの名無しさん (ワッチョイ ae63-V/Lh)
20/04/27 04:12:22 NMjdVbpJ0.net
置換と言ってるからセル参照ではない事だけわかった

663:デフォルトの名無しさん
20/04/27 04:51:42.68 o+TU1QYP0.net
学習能力のないひとがやってきて
説明能力の貧弱さを露呈する場所か・・・

664:デフォルトの名無しさん (ワッチョイ 91ad-R0M4)
20/04/27 05:03:04 Nsh172gi0.net
>>648
IF文、For文と配列で簡単な処理はこなせる
上級者はまた別のパラダイムで書いているが
先走る必要もなく基礎を確実に身につけよう

>>655
ド・モルガンは定理になることが多いが
そうなるのは公理系しだいだから
名前がおかしいと感じたことはない

665:デフォルトの名無しさん
20/04/27 06:05:48.59 XYadQOO00.net
>>660
非効率なコードを上げてくれ

666:デフォルトの名無しさん
20/04/27 06:24:43.93 3fBcsBz5r.net
>>660
select case

667:デフォルトの名無しさん
20/04/27 08:38:39.18 MOHWKMXM0.net
>>660
x3をd3に入れる
置換にこだわらず、代入しなおす

668:デフォルトの名無しさん
20/04/27 09:24:40.63 JVYKLC34M.net
ワークシート名をsheet(i)みたいな感じで配列に格納して、
for i=i to X
sheet(i).cell(row,col) = data
next
の様な、ループで各シートのセルに値を代入する方法を教えていただけないでしょうか。

669:デフォルトの名無しさん
20/04/27 10:44:49.67 p6J78QU70.net
>>668
実際の要件知らんが、普通はもっといい方法があると思うが、質問通りに。
URLリンク(i.imgur.com)

670:デフォルトの名無しさん
20/04/27 10:47:33.37 o+TU1QYP0.net
Dim i As Integer
For i = 1 To 3
ThisWorkbook.Worksheets(i).Cells(1, 1) = 1
Next i
で済むようなものだと予想

671:デフォルトの名無しさん (ワッチョイ 0101-K+B8)
20/04/27 13:38:56 JH5ykH9R0.net
・ツールの作成
・バク対応、修正業務
・各種テスト
VBAを用いて上記の業務を行う場合、皆さん(自分の取り巻く環境以外)の現場で求められる頻度や重要度が高いスキルや業務を伺いたいです。
よろしくお願いします。

672:デフォルトの名無しさん
20/04/27 15:07:52.31 VtI6ihiD0.net
>>671
馬鹿は死ね

673:デフォルトの名無しさん
20/04/27 15:33:05.22 uroKfm2Gd.net
>>668
何でシート名で配列なの?
既にシートオブジェクトの配列として使えるのに。

674:デフォルトの名無しさん
20/04/27 15:35:59.76 MOHWKMXM0.net
>>668
シート名は普通に列挙したいんだと思った
コード内に記述したいのか: sheet=Array("hoge","fuga","piyo","puyo")
セル内に記述したいのか: sheet=WorksheetFunction.Transpose(WorkSheets("hoge").Range("a1:a4"))
どうか、わかんないけど

675:デフォルトの名無しさん
20/04/27 15:36:24.43 uroKfm2Gd.net
>>671
そいつは現場次第だよねえ。
現場に併せて何でも出来るってことかな。
AccessならSQLは必須だと思うけど。

676:デフォルトの名無しさん
20/04/27 16:19:32.17 JH5ykH9R0.net
>>672
生きる!!!
>>675
自分の周り以外だとどんなことにVBA使ってるか気になりましてね。他意はマジでなくて、単純な興味として質問してみますた。

677:デフォルトの名無しさん (JP 0H34-GHE+)
20/04/27 17:19:41 H2efCY7TH.net
既存のVBAをどうしてもメンテせざるを得ないときに使う
新規に使うことはない

678:デフォルトの名無しさん
20/04/27 18:02:05.74 fDdETITO0.net
ちょっとデータを加工したい時、軽い処理とか1回限りの計算はVBAでやってる
VisualStudioはその場限りの捨てコードを書くには大げさすぎる

679:デフォルトの名無しさん
20/04/27 18:06:27.58 JnEQ074MM.net
>>678
そんな貴方にPowershellオススメ

680:デフォルトの名無しさん (ワッチョイ 0101-K+B8)
20/04/27 18:40:53 JH5ykH9R0.net
>>677
>>678
レスありがとうございました。
ちょっとした作業を手軽に(環境構築とかなしで)効率化するときに使ってるってのが分かりました。
何気なく使ってるから頻度も重要度もクソもないと

681:デフォルトの名無しさん
20/04/27 19:15:08.58 XYadQOO00.net
昔は「値で貼り付け」とかキー割り当てしてたけど最近のは割と便利になったから使ってないな
他には初回印刷日の挿入とか
ファイルプロパティにタイトルの設定とかかな

682:デフォルトの名無しさん (ブーイモ MMfd-enkp)
20/04/27 20:04:15 GiQWIPCuM.net
「値で貼り付け」に関して最近のはどう便利になってるの?

683:デフォルトの名無しさん
20/04/27 20:24:28.01 Jy0k1GG60.net
VBAでの開発依頼がしょっちゅう来る…

684:デフォルトの名無しさん
20/04/27 20:30:04.12 XYadQOO00.net
>>682
URLリンク(i.imgur.com)

685:デフォルトの名無しさん
20/04/27 20:34:34.60 z3LiCQZGM.net
配列を使った方が良い場合ってどんな時?

686:デフォルトの名無しさん
20/04/27 20:48:23.14 XYadQOO00.net
>>685
相手は誰だ?
ワークシート? Dictionary? CSV文字列?

687:デフォルトの名無しさん (ワッチョイ 0101-K+B8)
20/04/27 23:24:48 JH5ykH9R0.net
>>681
自分の素朴な疑問に答えてもらってありがとうございます。

688:デフォルトの名無しさん (ワッチョイ 7a4b-R0M4)
20/04/27 23:26:56 g7wz6Zov0.net
ここの人ら凄い、
いつも感心しながら読んでるけど本当に勉強になる。
これだけ知識や経験あるならユーチューバ―とかになって上手くやれば副業も出来そう

689:デフォルトの名無しさん (ワッチョイ acce-1Gce)
20/04/27 23:27:29 fDdETITO0.net
>>685
処理したい変数がたくさんあって繰り返し同じことをする時
処理したいセルがたくさんあって繰り返し同じことをする時

690:デフォルトの名無しさん (ワッチョイ acce-1Gce)
20/04/27 23:28:15 fDdETITO0.net
office田中もいつのまにかyoutuberになってたけど、こんなおじいちゃんだとは思わなかった

691:デフォルトの名無しさん (ワッチョイ 64ad-Btmo)
20/04/27 23:42:25 RTbdScdC0.net
VBAを本を読んだりググったりして勉強中です。
他社システムからいただくCSVファイルをExcelに取り込んで編集する必要があります。
頭にゼロが付いて、長さが不定の数字のフィールドがあるので、そこは文字列で
扱わなくてはならず、そのままExcelで開けません。
querytables.add でインポートしてみたところ、セル内改行の含まれる列があるため、
1行であるべきデータが2行になってしまいます。
POWERQueryを使えば回避できる、という情報にに突き当たり、とりあえずマクロの
記録をしてみて、使えるように変えられないか、と思いましたが行き詰っています。
「ソース = Csv.Document(File.Contents(””CSVのパス””),… 」
のCSVのパスの部分を変数にしたいのですが、変数にすると
「 .Refresh BackgroundQuery:=False」のところで
[Expression error] インポート 変数 がエクスポートと一致しません。モジュールの参照が漏れていませんか?」
と親しげだけど、冷たく突き放されます。
知識が足りなさすぎるのですが、データをきれいにして早く次の処理を作らなくては
いけなくて焦っています。
先輩たちはテレワークで、あまり質問もできず困っております。
どうぞよろしくお願いいたします。

692:デフォルトの名無しさん (オッペケ Sr5f-HrHD)
20/04/27 23:45:46 3fBcsBz5r.net
>>690
再生数少ないけど分かりやすいから初心者は見るべきだと思う
schooのは微妙だけど

693:デフォルトの名無しさん (ワッチョイ 4c2c-iUOt)
20/04/28 01:18:35 7QVY/xgO0.net
>>691
Ruby なら、以下をscript.rb に書いて、
CSV データを、input.csv に書いてある時、

ruby script.rb input.csv
と、シェルで実行すると、

require 'csv'

file_path = ARGV[ 0 ] # 引数には、CSVファイルパスを渡す。input.csv

# CSV ファイルを、1行ずつ処理する
CSV.foreach( file_path ) do |row|
puts "#{ row[ 0 ] } : #{ row[ 1 ] }"
end

入力・input.csv
あ,いう
a,bc

出力
あ : いう
a : bc

694:デフォルトの名無しさん (ワッチョイ 7ab5-l81y)
20/04/28 02:18:31 wtscQEd50.net
Sub ループuntil()
 Dim g As Long
  g = 3
 Do Until Cells(g, 2) = ""
 Cells(g, 6) = Cells(g, 2) + Cells(g, 3) * 10
 g = g + 1
 
 Loop Dim ms As String
 ms = MsgBox(g & "回ループ", vbYesNo, "どうやら")

 If ms = vbYes Then
 MsgBox "更に練習", vbYesonly, "じゃあ"   Else
 MsgBox "論外", vbYesonly, "てめーは"   
 End If
End Sub

何とか練習しつつ
ここにきてデータ型が逆に混乱してきましたわ
バリアントでごまかそうかな
おやすみなさい

695:デフォルトの名無しさん (ワッチョイ d98e-A1EL)
20/04/28 02:51:59 ro9Vnp/Q0.net
>>691
こんな馬鹿に仕事をさせるのが間違い

696:デフォルトの名無しさん (ワッチョイ acce-1Gce)
20/04/28 03:02:31 OG4s1hHd0.net
>>694
これ、そこらの入門書にはなかなか書いてないんだけど、MsgBoxの結果はVbMsgBoxResultという特殊な型なので、変数msはこう宣言するのが正解

Dim ms As VbMsgBoxResult

この宣言を書いてからコードを書くと、

If ms =

ここまで入力すると自動的に、vbYesとかvbNoなどの選択肢が出てくる

697:デフォルトの名無しさん (ワッチョイ 66e6-iUOt)
20/04/28 04:56:00 Ok+k67Xa0.net
Select Case "CSVファイルをExcelに取り込む"
Case "直接開く"
MsgBox "0 padding"
Case "querytables"
MsgBox "inline CR"
Case "POWERQuery"
MsgBox "Syntax Error"
Case "先輩たち"
MsgBox "テレワーク"
Case "2ch"
MsgBox "ググレカス"
Case "自分"
MsgBox "勉強中"
End Select

698:デフォルトの名無しさん (ワッチョイ 91ad-R0M4)
20/04/28 05:30:30 CHpsAleC0.net
>>690
VBAは年齢層高いだろ?
Pythonとかより

699:デフォルトの名無しさん
20/04/28 06:23:10.14 fDIatR4a0.net
最近csvを開くのがはやってるみたいだけど、拡張子をtxtに変えて開き直すといいよ

700:デフォルトの名無しさん (ワッチョイ 048f-1Gce)
20/04/28 08:10:33 uR1kyCkX0.net
>>671
ぜ・ん・ぶ

701:デフォルトの名無しさん (スッップ Sd70-bbQE)
20/04/28 08:27:27 F6rfqhbJd.net
>>685
速度アップの為にあえて使うのはVariant配列。

配列にすることに全く違和感が無いので、"あえて"使うことが少ない。
配列にするのに自然なことがたくさんあるし、普通に使ってる。

702:667 (ワッチョイ 2c7f-So6t)
20/04/28 13:36:09 1XDByXps0.net
ありがとうございました。
できました。

703:デフォルトの名無しさん (ワッチョイ 7349-xf6K)
20/04/28 13:57:24 0tfnjkqK0.net
いえいえ

704:デフォルトの名無しさん (ブーイモ MM5e-43Dx)
20/04/28 17:53:56 YPs9lugpM.net
Sub テキスト抽出()
  ChDir "c:\tmp"
  f = Dir("*.txt")
  c = 1
  Do While f <> ""
    Open f For Input As #1
        Line Input As #1,s
    s = "s"
    r = 1
    Do While Not EOF(1) And s <> ""
      Line Input #1, s
If s <> "" Then Cells(r, c) = Split(s, vbTab)(5)
    r = r + 1
    Loop
    Close #1
    f = Dir
    c = c + 1
  Loop
End Sub

705:デフォルトの名無しさん (ブーイモ MM5e-43Dx)
20/04/28 18:04:37 YPs9lugpM.net
ここで教えて頂いた>>704の「指定Path内の全txtデータのF列2行目から下に数値が続く限りシートに全部抽出する」コードのお陰で憑き物が取れて運用してるのですが
たまに画像の様な他の列に行がはみ出したデータがあると

実行時エラー'9':
インデックスが有効範囲にありません
で止まりますが

これを「他の列がどうだろうがtxt内のF2から下に数値が続く限り抽出」
に改良するのは難易度高いですか?
というかコードで可能でしょうか
入門編の本には載って無く数字変えたりwhileの位置変えたりしてますが簡単にいくはずもなく
参考になるサイトなどありましたら教えて頂けませんでしょうか

↓こんなデータが混じってるとエラーで止まります
URLリンク(i.imgur.com)

706:デフォルトの名無しさん (アウアウウー Saab-/zYc)
20/04/28 18:19:12 uYkVg/g/a.net
>>704
まんなかへんのdo while の後ろはかっこをつけたほうがいいよ
判定の対応がわかりにくいので

707:デフォルトの名無しさん (ワッチョイ 7a4b-R0M4)
20/04/28 18:35:05 yXtY+D7s0.net
>>690
元々有名な人なんだね。
投稿動画多くてあれこれクリックしてるうちにどんどん登録者数が伸びてったからビックリした。
最初見た時は5000ぐらいだったのに、さてどこまで伸びるかな。

708:デフォルトの名無しさん
20/04/28 19:06:29.99 fDIatR4a0.net
>>705
>If s <> "" Then Cells(r, c) = Split(s, vbTab)(5)
この行、最後に(5)ってついてるでしょ
読み込んだデータに5+1番目(0スタートだから+1)の要素が無かったら、どうなると思う?
ここは、splitの結果を一旦配列変数に受けて、配列の大きさを確認する判定をいれるといいよ
実を言えば、s<>"" の判定も不要だったりもする

709:デフォルトの名無しさん (ワッチョイ 048f-1Gce)
20/04/28 19:48:07 uR1kyCkX0.net
都道府県別の7日移動平均線を出すグラフ組めないかなあと
思って、「都道府県別の日々新規感染者数」を探したけど見つからん…。

なんで役人は pdf にしたがるんだろう。

710:デフォルトの名無しさん (ブーイモ MMed-43Dx)
20/04/28 20:13:54 ZPYYxv13M.net
>>708
正直ほとんどさっぱりわからないです。
が、ありがとうございます。そこらへんをいじればなんとかしろなりそうってことですかね。
まだ変数の使い方もよくわかってないのでsplit関数で検索して集中的に勉強していじれるようにがんばります。

711:デフォルトの名無しさん
20/04/28 21:00:00.12 CHpsAleC0.net
>>707
VBAはハードル低くて
エクセルが実用的だから
ユーザが多いんだろう

712:デフォルトの名無しさん (ワッチョイ 4c2c-iUOt)
20/04/28 22:51:18 7QVY/xgO0.net
データは、PDF じゃなくて、アプリで処理しやすいように、
同じ場所に、CSV ファイルも置いておくのが基本!

役人は、データ処理の素人w

713:デフォルトの名無しさん
20/04/28 23:02:38.82 IT0hJXXxM.net
EOF関数?
なんじゃこりゃ

714:デフォルトの名無しさん
20/04/28 23:21:24.84 7mVXavmj0.net
>>709
各都道府県毎にオープンデータでCSV配布してるのに何言ってんだ?

715:デフォルトの名無しさん (ワッチョイ e709-LlFz)
20/04/29 01:03:36 j7HdUAEO0.net
VBAから参照設定をせずにoutlookを操作しようとしていますが、
「Set mailItemObj = oApp.CreateItem(oApp.olMailItem)」のところで、
「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」と
エラーが出てしまいます。どうすれば解決できますでしょうか。。。

Sub sendmail_sample1()
Dim oApp 'As NEW Outlook.Application OutlookのApplication
Dim myNameSpace 'As Outlook.NameSpace
Dim myFolder
Set oApp = CreateObject("Outlook.Application") 'VBAで参照設定をした場合は不要
Set myNameSpace = oApp.GetNamespace("MAPI")
Set myFolder = myNameSpace.GetDefaultFolder(9)
'---コード1|outlookを起動する
Dim toaddress As String '変数設定:To宛先
Dim subject As String '変数設定:件名
Dim mailItemObj 'Outlookで使用するオブジェクト生成
'---コード2|差出人、本文、署名を取得する---
toaddress = Range("B2").Value 'To宛先
subject = Range("B5").Value '件名
'---コード3|メールを作成して、差出人、本文、署名を入れ込む---
Set mailItemObj = oApp.CreateItem(oApp.olMailItem) '★★★ここでエラー
mailItemObj.BodyFormat = 3 'リッチテキストに変更
mailItemObj.To = toaddress 'to宛先をセット
mailItemObj.subject = subject '件名をセット
'---コード7|outlookを閉じる(オブジェクトの解放)---
Set oApp = Nothing
Set mailItemObj = Nothing
End Sub

716:デフォルトの名無しさん (ワッチョイ c7ce-ts7H)
20/04/29 01:10:43 ICnUrfUx0.net
>>715
こうかな?
Set mailItemObj = oApp.CreateItem(olMailItem)

717:デフォルトの名無しさん (ブーイモ MM2b-EVni)
20/04/29 01:34:35 L1oMckOiM.net
配列変数難しすぎて笑える

718:デフォルトの名無しさん (ワッチョイ e709-LlFz)
20/04/29 01:35:24 j7HdUAEO0.net
>>716
レスありがとうございます。
「変数が定義されていません」エラーが出てしまいます・・・

719:デフォルトの名無しさん (ワッチョイ e709-LlFz)
20/04/29 01:40:00 j7HdUAEO0.net
>>715です。自己解決いたしました。
olMailItemを値指定でゼロ(0)にしたらできました。。。
謎ですが。。。ありがとうございました。。。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch