Excel VBA 質問スレ Part78at TECH
Excel VBA 質問スレ Part78 - 暇つぶし2ch1:デフォルトの名無しさん
22/10/30 13:43:16.31 6yf2E1Gz0.net
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること
ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK
次スレは>>980が立てること
無理なら細かく安価指定
※前スレ
Excel VBA 質問スレ Part77
スレリンク(tech板)
-
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

2:デフォルトの名無しさん
22/10/30 13:52:22.69 6yf2E1Gz0.net
3行貼り付けても
2行になるんだな この呪文↓
!extend:checked:vvvvv:1000:512

3:デフォルトの名無しさん
22/10/30 13:52:41.17 6yf2E1Gz0.net
1行目は本物の呪文
2行目は次回スレ立て時用の呪文
3行目は間違って消す馬鹿除けの保険

4:デフォルトの名無しさん
22/10/30 13:54:09.50 6yf2E1Gz0.net
とりあえず建てたよ。
あと進行よろしくお願いします。

5:デフォルトの名無しさん
22/10/30 15:40:36.74 pPckLpAv0.net
初心者はなんで自分の能力でできないことをやりたがるんだろうね

6:デフォルトの名無しさん
22/10/30 15:56:30.95 INNDxBri0.net
そりゃ自分でできることだけやってても伸びないからじゃね

7:デフォルトの名無しさん
22/10/30 15:59:52.83 Mbn5azmc0.net
>>5
子供と一緒で自分の能力でできることを知らないからじゃない?

8:デフォルトの名無しさん
22/10/30 16:51:58.49 5A/AyQcT0.net
出来なかったことがやれるように成ったらうれしかろ? 次のステップは踏みたいじゃん 階段途中で足止め食うよりは
URLリンク(chie-pctr.c.yimg.jp)
前スレの最後の質問は、ログっぽさ出そうと苦労しても出力が一瞬で終わってガッカリすると思う
よっぽどひつこいloopとかさせて延々と処理し続けるコード書くなんてのも無駄の極みだし
出力に遅延処理させる? Excel上ではとっくに結果出てるのにログっぽい画面ではダラダラ出力し続けさせる?
うん、悪くない 関係無いが、マトリックスのOPの象徴をマトリックス・コード デジタル・レインとか呼ぶらしい 今更知った

9:デフォルトの名無しさん
22/10/30 17:13:30.48 6arNe7Kx0.net
>>5
それ以前に使うソフト間違ってねえか?
てのばかりだしね。
出来ること出来ないことの判断がさ。

10:デフォルトの名無しさん
22/10/30 18:34:39.52 2N6ePwSn0.net
>>5
そもそも自分の能力で出来るならこのスレに来ないし

11:デフォルトの名無しさん
22/10/30 19:11:45.46 LcJSLwmnd.net
>>5
判断すらできないし、それを指摘する人もまわりにいないんでしょ

12:デフォルトの名無しさん
22/10/30 19:21:37.70 ZcgB96550.net
自分でできない処理をやりたいと考えるだけならいいが
自分で調べたりしないで質問したらやってもらえるとか思ってるんじゃないか

13:デフォルトの名無しさん
22/10/31 11:08:09.71 y4w9EAHl0.net
しばらく前からそういう層は増えてる 黎明期のような、積極的に見知らぬ世界に飛び込もうって勢いじゃなく
仕事でやらざるを得ないからしょうがなく操作する、でも分からん、教えて
検索しようとしても、やたらと広告メインのサイトばかりヒットして、ロクな情報に辿り着けない ンなもん使えねー に成る
便利も度を超すとアタマがパーに成るだけ 老獪なじじい共は相手が美少女だとでも思い込んで、手取り足取り懇切丁寧に教えてあげて
やる気(ぜってーモチベーションとか言わない強靭な意志)を引き出してあげるよう、つべこべ文句垂れてないで、やよ励め

14:デフォルトの名無しさん
22/10/31 15:01:23.81 1VyNBOoWd.net
まあ興味ある質問ならこたえるし
質問がよくわからない、質問者もよくわからないなら無視するだけだから質問するのはかまわないけどね

15:デフォルトの名無しさん
22/10/31 19:53:47.30 pfNUNfDW0.net
質問です。
ボタンを押して時間が長く掛かる処理を実行する際、
他のとあるボタンを押したときにピタッと処理を中断するプログラムって書くことは可能ですか?
エスケープキーとかで中断させようとすると、中々中断されなかったり、固まってしまうことがあるもので・・・
以下の条件は満たして欲しいです。
・中断用のボタンを押すまでの処理実行速度は落とさない。
・中断用のボタンを押すとピタッと止まって実行している処理を中断してプログラムを終了する。
※尚、途中でDBを読み込むなどVBAに依存しない処理は含まれないものとします。

16:デフォルトの名無しさん
22/10/31 19:56:07.94 m528Nikw0.net
>>15
無理


17: 時間のかかってる部分にDoEventsを入れるしかないし、スピードは落ちる



18:デフォルトの名無しさん
22/10/31 22:50:53.16 pfNUNfDW0.net
>>16
なるほど、やはり無理なnですね
諦めがつきました。ありがとうございます。

19:デフォルトの名無しさん
22/10/31 23:00:31.00 4/W2uk2s0.net
>>15
作り方によるが、長くかかる処理がLoop回数が多いようなパターンであれば
1.長くかかる処理の中に、ある条件が成り立てば以降の処理をしないで終了するようにしておく
2.Doeventsを長くかかる処理の中に入れる
3.ボタンを押したときに上の条件が成り立つようにする
なら一応それっぽくできるかも

20:デフォルトの名無しさん
22/11/02 12:00:56.68 LYlR/saz0.net
win10 office2019
ループの外で
Dim ar() as long
してある配列を
そのあとのループの中で初期化してかつ、空のままUboundでも使いたいです。
今はLong宣言を諦めてVariantにしてループ内で
ar = array()
してそのあと空のままUboundに使ってもエラーにならないようにして使っています。
Redimで初期化してLongの空配列でもUbound出来る方法で、誰に配っても問題なく動くというのはないでしょうか?

21:デフォルトの名無しさん
22/11/02 12:44:54.50 twL4/Nfdr.net
日本語でおけ
コード出せ

22:デフォルトの名無しさん
22/11/02 13:09:37.72 u9JRuLqrd.net
俺も3回読み直したけど何がしたいかわからんかったわ

23:デフォルトの名無しさん
22/11/02 14:30:47.00 u9JRuLqrd.net
初期化って何?Erase??
空ってどういう状態???要素数の宣言なし????
じゃあRedimで初期化して空配列ってなに?????
なんだよなぁ

24:デフォルトの名無しさん
22/11/02 17:23:30.25 CTo+D6um0.net
>>19
たとえばUBound2とかいう名前で、空だったら-1を返す、そうでなければ
UBoundの値を返すといった関数を作って、渡した人にはUBound2を使ってもらうとか。
あるいは空に戻すときに、ReDim ar(-1 to -1) as longのようにするとか。
実際には空の配列ではないけれど、 UBound(ar) < 0 のような形で判定できる。

25:デフォルトの名無しさん
22/11/02 17:38:59.67 u9JRuLqrd.net
自分は基本的に動的配列は>>23の様な初期化条件をきめておいて操作してるわ
使ったことなくて今ためしたけど
if (not ar) = -1 then
の様な式で要素数未定義が判断できるけど
こんなことしても事故のもとだからなぁ

26:デフォルトの名無しさん
22/11/02 17:42:15.18 K1ZIN18od.net
以前似たようなことを質問していた馬鹿だろ

27:19
22/11/02 18:07:41.93 LYlR/saz0.net
>>23
ありがとうございます。
UBound2というのは変数でしょうか?
URLリンク(qiita.com)
渡すというのは完成したマクロファイルを他のパソコンで動かすという意味です。
dim Ary()
Ary = Array()
この初期化がとても便利で空のままUBound(Ary)してもエラーになりません。
その代償でVariant型にせざるを得ないのが気になってしまって。
-1 to 1という初期化方法はいいですね。
とても参考になるレスをありがとうございました。
これで失礼致します。

28:デフォルトの名無しさん
22/11/03 02:19:49.23 tGqLN8Kua.net
エラー処理は誰もが苦労する所だな

29:デフォルトの名無しさん
22/11/03 08:29:16.93 NbsIPyEs0.net
VBAはだいたいの機能が備わってるけどこういう基本的なところが抜けてたりするから
>>19はよくある疑問なんだけどそういう機能が無いので>>24みたいな非公式なTipsが編み出されたりしてるわけで

30:デフォルトの名無しさん
22/11/03 11:49:27.42 k/SeYHwf0.net
無理やり異常が出ないようにコードを組めてもその際の実行結果って正しい結果になっているのかな?

31:デフォルトの名無しさん
22/11/03 13:26:26.26 SXuBVfSid.net
人のコードだからどうでもいいんじゃね

32:デフォルトの名無しさん
22/11/03 13:41:08.10 8HWzaTv40.net
裏技を使わないと書けないコードってのは元の設計が間違ってる
言語仕様をきちんと理解してないだけ

33:デフォルトの名無しさん
22/11/03 16:03:25.78 hk926ywx0.net
>>29
理由が解ってれば辻褄が合わせでもいいんじゃない?
個人的にはエラーの原因が解らないからと例外処理で済ますのが一番ダメだと思う

34:デフォルトの名無しさん
22/11/03 21:03:31.78 6JQwVlSC0.net
VBAを1から覚えるなら「エクセルの神髄」というサイトで勉強すれば早いですか?
URLリンク(excel-ubara.com)
楽天RSSをりようして、株価データを取得・操作のため学ぼうと思っています。

35:デフォルトの名無しさん
22/11/03 21:19:20.67 uJ5qkIw80.net
>>33
そういう目的達成のためなら
金出して人に作ってもらうのが一番早い

36:デフォルトの名無しさん (スプッッ Sd73-Yeao)
22/11/03 22:18:41.27 301n+Lw6d.net
その目的ならExcel使わない方が良い

37:デフォルトの名無しさん
22/11/03 22:25:29.94 6JQwVlSC0.net
>>34
最終的には頼みますけど、自分である程度は理解していなと
ちょっとしたカスタマイズや金額の相場がわからないので
まずは自分でやってみようと思いました。
最低限の知識くらいはと。

38:デフォルトの名無しさん
22/11/03 22:37:23.30 hk926ywx0.net
あー、昔そういうの作った気がすると思ってほっくり返したら出てきたわ
URLリンク(uploda1.ysklog.net)
確か全銘柄から値が急激に上下した銘柄をピックアップしてた
知ってると思うけどHPからとってくるデータは基本時間遅らせてるからデイトレするなら役に立たないよ
昔はどっかの証券会社でAPIかなんか提供してたはず、今はわからんす
真髄とかってチラ見だけどサイト良いね、ただ印刷とかグラフとか重要じゃないものも等価に説明してるんで
自分にとって必要なものから覚えていった方が良いかも

39:デフォルトの名無しさん
22/11/04 00:04:38.11 musbajKsM.net
>>36
たいがいのトレードアプリは素人が思いつくような機能は全部入ってるから、オーダーメイドやカスタマイズの必要なんかない
わざわざ作ってもらうのは金の無駄だし、今から勉強するのは時間の無駄

40:デフォルトの名無しさん
22/11/04 00:55:51.96 3MIAhDZX0.net
まぁそうなんどけどね
株は簡単に言うと多数決で勝つ方を読むゲームだから公的な提供データをみた他大多数がどう考えるかを先読みする力が必要
そして先読みするにはみんなと同じことやってちゃだめな部分もあるのよ

41:デフォルトの名無しさん
22/11/04 03:53:57.13 xdVLdIYL0.net
HP で公表している、明地式3点チャージ法だけやっておけば?
乖離率が大きい、売られ過ぎ銘柄の戻りを狙う。
急落の瞬間に買って、上がればすぐに売る
ほぼ、100%当たるけど、
相場が大暴落する時だけだから、なかなか発生しないけど

42:デフォルトの名無しさん
22/11/04 07:15:46.95 9FITh/fu0.net
>>38
有料の奴って大抵VBAの部分って見せてないだろ
飯の種だし

43:デフォルトの名無しさん
22/11/04 08:44:29.23 xdVLdIYL0.net
Python で有名なYouTuber・キノコードは、
一目均衡表など、株価の指標の作り方の動画とか出していなかったか?
株価などは、Python, Ruby だろう。
GUI は、HTML, CSS, JavaScript。つまり、ウェブアプリ。
簡単に動くのは、Jupyter Notebook
VBA では作らない

44:デフォルトの名無しさん
22/11/04 08:56:03.05 Jlvfh50dM.net
仮にMS OfficeでそれらしいことをするならVBA よりOfficeアドインの範疇なのでVBAではなくてC#やJavaScriptが基礎になると思う

45:デフォルトの名無しさん
22/11/04 10:52:13.03 3MIAhDZX0.net
>>37
一応念のため
この表は数秒おきに自動作成されるものでオリジナルの計算をしてる
シート名見ればわかるかもだけどVBAで出来ないわけじゃない
逆に>>38でも書かれているけど既存のチャートとかはもうあるんだからそれを使うのが良いと思う

46:デフォルトの名無しさん
22/11/04 10:59:08.72 ZQs9x2pi0.net
板情報集計値は俺のしる限りどの証券会社も公表してないから自分でやる意味はあるかも
それで勝てるかは知らんが

47:デフォルトの名無しさん
22/11/04 11:20:09.73 AoHCfeaMd.net
いい加減スレチってわかれよ

48:デフォルトの名無しさん
22/11/04 18:56:10.58 SA7ElMvZ0.net
スレチと知っててこんなことも知ってるっよって自慢したいのでしょう
他に友達いないかわいそうな人ってわかってやれよ

49:デフォルトの名無しさん (ワッチョイ 137c-Iwn0)
22/11/04 19:05:00.00 3MIAhDZX0.net
>>47
注意されたんで話やめたんだけど?
自分がボッチだからってスレチを冗長させるようなことはやめてくんないかな

50:デフォルトの名無しさん
22/11/05 07:58:50.01 LfhrqaaU0.net
ま、そういうこった
ガッツリやりたいなら.NetでASP.NetのC#か
数学的な要素が強いならPython辺りの板へ行けばいいだろう。
どうしてもEXCELでやりたいならWebのEXCELの方が向いているからOfficeScriptだな。
多分そんな板立ってるか分からんから
自分で立てるか似たようなJavaScript板へ行けば。

51:デフォルトの名無しさん (ワッチョイ 8101-pbv6)
22/11/05 09:37:48.82 j9mhoLXM0.net
>>38
別に時間の無駄ってことはないだろ
そうやって他の人の真似して少しづつ勉強してくんだからよ

52:デフォルトの名無しさん
22/11/05 11:04:23.59 qEPBo7Vkd.net
質問の回答でもなんでもないレスなら雑談スレにでもいけばいいものを

53:デフォルトの名無しさん
22/11/06 08:04:11.74 WRia8VYT0.net
>>50
目的はトレード、手段の一つとして質問者が選んだのがVBA
VBAを勉強するのが目的ではないし、VBAは最適解でもない

54:デフォルトの名無しさん
22/11/06 10:25:52.00 HzrUdJhmr.net
>>52
そんな事全く書いてなくね?それはあなたの思い込みでしょ
そもそも「まずは自分でやってみようと思いました。最低限の知識くらいはと。」って書いてあるんだから
あなたが判断することではない
つまり質問だけに答えてればいいんだから余計な事は言う必要ないし、答えたくなければ黙ってろカスってことね

55:デフォルトの名無しさん
22/11/06 12:27:37.53 V51Xvaw0M.net
別に厳格なルールはないけどな
ここって質問ないときはこうやってダラダラとやってる感じじゃん
そこを個々の主観で縛っていったら一番窮屈な人にあわさるがそれがお望みか?

56:デフォルトの名無しさん
22/11/06 12:32:45.96 V51Xvaw0M.net
他人に注意をするときには客観的によくよく吟味してからにしないと結局荒らすことになる
それは誰も本意ではないだろ?

57:デフォルトの名無しさん
22/11/06 20:36:11.37 riDqZ27VF.net
よもやよもやだ

58:デフォルトの名無しさん
22/11/06 21:56:54.24 OR5OK3k20.net
メソッドの後ろにスペースを入れると、引数候補が表示される時とされないときがあります。この違いはどのように考えれば良いでしょうか。
例えば、worksheets.addでは候補が出てくるのですが、activeworkbook.closeでは出てきません。

59:デフォルトの名無しさん
22/11/06 22:06:28.68 XPFotTg00.net
別に困らない

60:デフォルトの名無しさん
22/11/07 08:01:36.70 h9A4jLCfd.net
補完機能に期待した事ないや
同じく候補が出る時と出ない時のパターンが分からん

61:デフォルトの名無しさん
22/11/07 09:40:23.30 kmERiYaX0.net
>>57
> activeworkbook.closeでは出てきません。
普通に出るぞ
Microsoft(R) Excel(R) for Microsoft 365 MSO (バージョン 2209 ビルド16.0.15629.20200) 64ビット

62:デフォルトの名無しさん
22/11/07 15:34:45.97 70xy0Nvv0.net
ただのマウント&説教スレ

63:デフォルトの名無しさん
22/11/07 15:57:02.55 iza/eHKb0.net
言葉の使い方として正しいのか知らんけど
メソッドの形ならスペース
関数の形なら括弧

64:デフォルトの名無しさん
22/11/11 00:37:34.42 Emvu2GHR0.net
webbrowserでSSL認証ってどうすればいい?
C#でwebview2なら出来たんだけど、
VBAなのでwebbrowserじゃないと駄目なんだわ。

65:デフォルトの名無しさん
22/11/11 08:12:21.32 SalKsxDp0.net
>>63
知らん
C#の環境があるならアドイン作ってVBAから呼び出せばいいじゃない

66:デフォルトの名無しさん
22/11/11 15:05:26.45 QOE8vLcla.net
>>57
うろおぼえだけど、戻り値がどうなってるかによる
Worksheets.Addは明確にWorksheetsコレクションのAddメソッドのことなのでインテリセンスがちゃんと機能する
ActiveWorkbook.Closeは、ActiveWorkbookが確実にWorkbookオブジェクトを返す保証がないので、Closeメソッドのインテリセンスが機能しない
dim wkBook as Workbook
set wkBook=ActiveWorkbook
wkBook.Close
とでもすればインテリセンスは機能する

67:デフォルトの名無しさん
22/11/16 08:04:06.59 iwuklodQd.net
ExcelVBAからプログミング初めてそろそろ別言語が気になってるんだけど、どのくらいまで習得したら一区切りによさそう?
今は基本的な構文とか覚えてクラスを勉強し始めようかなって所なんだけど

68:デフォルトの名無しさん
22/11/16 08:50:07.90 z9TySYjjd.net
それで食べていくなら食べていけるだけの事を覚えるまでだし
趣味でモノづくりしたいならつくれるまでだし
ただなんとなくなら適当にどうぞ
そもそも人に聞くことか?w

69:デフォルトの名無しさん
22/11/16 09:57:43.76 vjYael+cd.net
別言語じゃないと出来ない事が出てきた時。
EdgeがDom操作出来ないから、仕方なくC#の勉強始めたわ。

70:デフォルトの名無しさん
22/11/16 11:10:33.08 pSETlPcG0.net
雇用形態による
客先IT 土方奴隷なら、Java, PHP だし、
モダンでリモートワークなら、Ruby on Rails
YouTube で有名な雑食系エンジニア・KENTA の動画でも見れば?
半年で、Railsのポートフォリオを作って、転職する

71:デフォルトの名無しさん
22/11/16 13:16:24.41 zpXhJLmc0.net
>>66
できれば研修とか受けて短期間で集中して勉強するのがおすすめ
言語の習得に区切りとかはない、自分で納得するかどうか

72:デフォルトの名無しさん
22/11/16 14:44:55.98 LR3eo8AJ0.net
一般事務系ならどのあたりまで?

73:デフォルトの名無しさん
22/11/16 14:56:37.09 z9TySYjjd.net
一般事務なら使わない

74:デフォルトの名無しさん
22/11/16 17:09:04.39 iwuklodQd.net
>>66だけど答えてくれた人ありがとう、結構臨機応変にって感じなのね

75:デフォルトの名無しさん
22/11/16 18:23:35.40 4eEwN6UDd.net
>>73
Rubyだけは絶対に手を出すな

76:デフォルトの名無しさん
22/11/16 19:20:01.04 +GbRkwRhH.net
>>66
高速化して、オブジェクトの構成覚えて、イベントでなにか記述して
あとはifとfor、foreach、
これだけ使えたら大抵のことはできるだろうから、phpでも使ってみるといいと思う

77:デフォルトの名無しさん
22/11/16 22:22:53.60 9ltX2oUg0.net
>>74
これ怖い 参考に理由聞いてもいい?

78:デフォルトの名無しさん
22/11/16 22:34:06.61 DYObOoK1a.net
クラスモジュールを使ってなにか面白いこと便利なことできないかなあ
今のとこコンストラクタで画面更新や自動計算を切る呪文を唱えるクラスくらいしか作っていないんだが

79:デフォルトの名無しさん
22/11/16 22:49:19.27 UM257iUM0.net
実務ではクラスモジュールなんて殆ど使わないよ
標準モジュールで機能別に関数をまとめるとかだな
それよりエラートラップや値渡しと参照渡しの違いとか覚えたほうがいい
C#やJavaだとクラスの設計ができるレベルじゃないときついが

80:デフォルトの名無しさん
22/11/16 23:09:35.64 1T85N88O0.net
一般事務ならそれこそvbaのみで十分だろ
職場のパソコンで環境構築とか不可能だし
Excelなら必ず入ってるからな

81:デフォルトの名無しさん
22/11/17 01:03:56.22 ugho+MXj0.net
>>77
そうだなぁ
きちんとクラスの特性とか多態性とか
基本的なことを押さえていれば
何となくこんなシチュエーションのときに使うって
分かると思うからその辺調べてみれば?
もっとも、VBAでクラスのこと説明してるとこ
あまりないから、JavaとかC#でクラスって
どんなもんかググれば大概出てくるんじゃないかなぁ
VBAのクラスはかなり制限あるし
その辺のこと興味持つようになったらボチボチ
他言語にも手を伸ばす時期だと思うよ
あと、「こんな使い方するんだ」ってのが
知りたければ「デザインパターン」でググってみればいい
これもなんかのヒントにはなるよ

82:69
22/11/17 06:50:32.28 bNmyZmxA0.net
Qiita, Zenn, Note, Wantedly、食べチョクなどは、Ruby on Rails。
時価総額100億円ぐらいを目指す、ベンチャー企業がRailsを採用する。
米国では、1兆円超えのShopify, Airbnb, Gitlab などもある
他には、ガーシーが使う、Mastodon はRails 6。
作者のドイツのオイゲン・ロホコは、PHPからRailsに変えた。
Rubyの方が可読性が高いから
米国年収では今の円安で、Rails, AWS Solution Architect などは、2千万円ぐらい。
バックエンド技術者は高い。
AWS, Linux, Docker, Kubernetes、データベースなど学ぶことが多いから
KENTA の天敵・モローは、2年ほど前に、YouTubeで言ってた。
Rubyは滅ぶ。これからはJava・PHPの時代だと
それが今になって急に、Railsのキャリア相談までやり出したw
Java・PHPの仕事は、どうなったの?w
YouTubeのモローの動画。
【2022年版】Ruby on Railsの将来性
KENTAが、PHP, Scala をオワコン認定したから、
PHPのFacebook とか、Laravel を使っているZOZO、
Scalaを使っているTwitter などは、良い開発者を集めるのが大変

83:デフォルトの名無しさん
22/11/17 07:25:29.19 pvjBVkzjH.net
>>76
利用者が増える兆候が全くない。
もう10年前だけど、Twitterもrubyを損切りした
ざっくりいうと大体perlと同じぐらいの人気
URLリンク(trends.google.co.jp)

84:デフォルトの名無しさん
22/11/17 07:25:45.68 UeQQfqrGM.net
技術の方向性が迷子

85:デフォルトの名無しさん (JP 0Heb-BvCT)
22/11/17 07:50:17.45 pvjBVkzjH.net
>>81
他の全ての大手は普通にPHP・pythonを使っているのに、
「ごく一部の大手」だけがrubyを使っているのが現状

また、ruby信者は頭がおかしくこのような歪な布教活動を行う特徴がある
くれぐれも騙されないように

86:デフォルトの名無しさん
22/11/17 08:28:52.99 sFGipXVYd.net
また雑談が始まった
スレタイよく読めよお前ら

87:デフォルトの名無しさん
22/11/17 09:34:06.31 6A2Gqyph0.net
総合スレっての無かったかい?

88:デフォルトの名無しさん
22/11/17 11:29:16.58 7HR1FVlLd.net
>>76
わかっただろ?統一教会みたいな連中に巻き込まれる

89:デフォルトの名無しさん
22/11/17 11:59:56.14 oqPw0CoV0.net
>>85
だからそういうこと書くと荒れるって言ってんだろ?
質問来たらちゃんと答えてるんだからほっとけよ

90:デフォルトの名無しさん
22/11/17 12:04:27.49 i1/jmP1Yd.net
>>82
>>87
ありがとう、そういうが風潮あるとは知らず.......

91:デフォルトの名無しさん
22/11/17 13:58:32.43 sFGipXVYd.net
>>88
言わねーとずっと続くのがいつもの流れだろ
ほっとくのが主義なら俺にも言うな

92:デフォルトの名無しさん (ワッチョイ 1b8c-/xWR)
22/11/17 14:22:27.97 4mNSRYt80.net
言語として最高かどうかは別として
とりあえずjavascript系をやっていればこの先20年は安泰

93:デフォルトの名無しさん
22/11/17 15:49:55.21 6A2Gqyph0.net
VBA自体年寄り御用達の言語になっちまった感だからね

94:デフォルトの名無しさん
22/11/17 17:00:32.50 m6w3NGDg0.net
ラズパイの入門キットが尼で3000円で売ってるからRubyでサンプル動かしてLEDチカチカ楽しいよ
仕事につなげたいなら今はJavaでスマホアプリが一番需要がある
自分のスマホで遊んでもいいし、Windows用のエミュレータも無料で公開されてる

95:デフォルトの名無しさん
22/11/17 17:49:39.21 7HR1FVlLd.net
ほら、こうやってRuby、Rubyって
ゴキブリそのもの
そもそもRaspberry PiのサンプルはPythonが圧倒的に多い
Rubyとか言ってる連中に近づいてはいけません

96:デフォルトの名無しさん
22/11/17 19:10:46.08 uw0RNQ/90.net
こうなった原因を作った初心者がすべて悪い

97:デフォルトの名無しさん
22/11/17 21:44:05.97 KK3w9Zce0.net
VBA + Selenium + Chrome で自動ログインをツールを作っています。
Dim Driver As New Selenium.WebDriver
ログインした後にパスワードを保存しますか?
というダイアログが出て邪魔でしょうがないです。
それを削除する為に
credentials_enable_service  false
profile.password_manager_enabled false
を使うのは分かったのですが、pythonやjavaのコードばかりブログに乗っていて
VBAの文法でどう書けば良いか分かりません。
詳しい方がいたら教えてください。

98:デフォルトの名無しさん
22/11/17 23:24:19.00 oqPw0CoV0.net
>>90
放っておけばっていうのはお前がコントロールしようとしている掲示板の脱線に対してだよ
放っておいても質問があれば勝手に戻るからさ、これ書くの2度目ね
そのことと俺がお前を放っておくのとは意味あいがぜーんぜん違うんだがわかる?まぁ解んなくてもいいけど
あと指図はするけど言われたくないんだよな?
ならその通りにしましょうかね

99:デフォルトの名無しさん
22/11/18 00:09:57.91 PzEY95EU0.net
>>96
chromeの起動オプションに書き加える
使うのが自分だけなら手動で事前にchromeの設定を変えておくのが一番簡単

100:デフォルトの名無しさん
22/11/18 04:37:56.15 NsskB2ct0.net
>>98
VBA+Seleniumで起動オプションの書き方はどうやればいいのでしょうか?
C#やPythonやJavaばかりでVBAの表記法が見つかりません。

101:デフォルトの名無しさん
22/11/18 15:03:38.43 PzEY95EU0.net
>>99
AddArgument

102:デフォルトの名無しさん
22/11/18 15:59:01.29 rkfxbe2GH.net
間違ってrubyを学習してしまい、無駄な時間を過ごしてしまうことが忍びないのはわかる
しかし、「人生には無駄な学習がある」ということに気づくことも大事な事かもしれない
※rubyの学習が無意味ということは、rubyを学習すればすぐに気づく

103:デフォルトの名無しさん
22/11/18 19:53:51.40 zxScCJY70.net
別にruby推しでもかまわないけど関係ないスレでは自重しろとは思う

104:デフォルトの名無しさん
22/11/18 20:42:45.12 2X/Wvhddd.net
rubyスレは過疎っているもの

105:デフォルトの名無しさん
22/11/19 02:07:39.29 emmVvlBX0.net
なんでこんな偉そうな奴らばかりなのここ?

106:デフォルトの名無しさん
22/11/19 02:29:57.55 UCCiArGZ0.net
ruby信者が荒らすから

107:デフォルトの名無しさん
22/11/19 08:44:51.51 jgd4H5DdH.net
rubyキチガイが荒らしに来るからヘイトが凄い事になってる
なお他のスレでも同様

108:デフォルトの名無しさん
22/11/19 18:19:31.17 IQRl98lga.net
GetOpenFilenameで開いたファイルのパスを返すFunctionを作ったのですが、戻り値を変数として利用する度にGetOpenFilenameメソッドが実行されてダイアログが開きます
初回のみダイアログを開くFunctionは作れないもんですかねえ
代替案としてSubプロシ=[ジャとして呼bム出して取得しbスファイルパスbublic変数に試福゚ているのでbキがPublic変数bgうのはなんbゥ気持ち悪くて=c…

109:デフォャ泣gの名無しさb
22/11/19 18:32:15.63 c1VeRjNF0.net
とりあえずコードで示そうか

110:デフォルトの名無しさん
22/11/19 19:04:59.90 7ZzLn7VE0.net
>>107
Functionの外で保持しておく値なら
Public でなく Dim で宣言すればモジュール内でつかえる

111:デフォルトの名無しさん
22/11/19 19:12:46.39 kzcZtDQa0.net
JavaとかC#でenum使うメリットがわからん

112:デフォルトの名無しさん
22/11/19 19:17:53.70 bItn6bkl0.net
>>107
戻り値を変数に入れてないだけでは?

113:デフォルトの名無しさん
22/11/19 22:10:17.78 oLScpTixd.net
>>107
コードも見てないから何とも言えないけど
初回のみって判定なら基本的に変数で管理するしかないと思うけどね
それとGetOpenFilenameがダイアログでファイル名(ファイルパス)を取得するための関数なら関数自体は何もせずに
GetOpenFilenameを2回目以降に呼ばないような変数管理が普通の方法じゃないかと思うよ
publicが気持ち悪いってのは関数や変数のスコープ管理がおかしいからだと思うから
それはそれで見直せばいいのでは

114:デフォルトの名無しさん
22/11/19 22:13:03.43 6K02rf2Z0.net
>>107
それってsubの中で
cells(1,1)=Function変数
cells(2,1)=Function変数
ってやってるからでしょ?
subの中でtempでも宣言して
temp=Function変数
cells(1,1)=temp
cells(2,1)=temp
ってやればいいんじゃない?

115:デフォルトの名無しさん
22/11/19 23:25:37.91 emmVvlBX0.net
ざっくりな質問じゃなくて詳細書いてくれ頼むから

116:デフォルトの名無しさん
22/11/19 23:29:30.05 WhIdqCT2d.net
>>107
こういう馬鹿が来るから荒れる

117:デフォルトの名無しさん
22/11/20 00:35:29.58 5+GQTxgS0.net
自分で納得できるコードが書けないのは経験が足りないだけかも

118:デフォルトの名無しさん
22/11/20 07:09:50.84 LWJSK1yhd.net
自分でそこんところをいろいろ考えてやるのが楽しいのに
どうにでもなるようなことを聞いてる人ってプログラミング=苦痛と感じてるひとなんだろうなぁって思うわ
まぁそれならそれで仕方ないけど

119:デフォルトの名無しさん
22/11/20 08:11:58.08 aAZoxoj/r.net
>>115
お前が荒らしてるだけじゃん
全然荒れてないわ

120:デフォルトの名無しさん
22/11/20 08:12:58.99 U8ZuobNzM.net
と、荒しが申しております。

121:デフォルトの名無しさん
22/11/20 09:58:37.83 BaPmF74HF.net
>>108
こんな感じです。
Public Function OpenedFilePath() As Variant
OpenedFilePath = Application.GetOpenFilename(FileFilter:="ExcelファイルおよびCSVファイル,*.xls*;*.csv")
If OpenedFilePath = False Then
MsgBox "ファイルが選択されませんでした。"
Exit Function
End If
Dim OpenedFileName As String
OpenedFileName = Dir(OpenedFilePath)
Dim Wb As Workbook
For Each Wb In Workbooks
If Wb.Name = OpenedFileName Then
MsgBox "選択したファイルは既に開かれています。ファイルを閉じてやり直してください。"
OpenedFilePath = False
Exit Function
End If
Next Wb
Workbooks.Open OpenedFileName, UpdateLinks:=0
End Function
Function変数「OpenedFilePath」をメインのプロシージャで何度か呼び出すのですが、
そのたびにダイヤログが開くんですよね(まあ当たり前なんですけど)。
やっぱり「OpenedFilePath」をメインのプロシージャの方でローカル変数に格納するしかないですかね。

122:デフォルトの名無しさん
22/11/20 10:09:40.70 JSdYtKUKr.net
>>120
変数に入れるのが一般的だけど、どうしてもっていうならFunction全体を「OpenedFilePathが空白だったら」ってIfで囲ったらなんとかならん?

123:デフォルトの名無しさん
22/11/20 10:21:57.15 ZntJwwMB0.net
特に理由がない限り1つのプロシージャの機能はなるべく1つに限定したほうがいい
短期的に問題無くても後々機能を使いまわしたくなった時に利便性が悪い

124:デフォルトの名無しさん
22/11/20 10:25:11.24 AxU0uBeT0.net
>>120
まず「Function変数」なんオレオレ用語は止めなよ、余計混乱する
> Function変数「OpenedFilePath」をメインのプロシージャで何度か呼び出すのですが、
それ何のために呼び出してるんだ?



125:サもそも関数内でブックをオープンするならオープンしたブックを返してメイン側ではそのブックを使えばいいだけな気がするが... Public Sub Main() Dim Book As WorkBook Set Book = OpenedFilePath() ... End Sub Public Function OpenedFilePath() As WorkBook Dim Path As Variant Path = Application.GetOpenFilename(FileFilter:="ExcelファイルおよびCSVファイル,*.xls*;*.csv") If Path = False Then MsgBox "ファイルが選択されませんでした。" Set OpenedFilePath = Nothing Exit Function End If Dim OpenedFileName As String OpenedFileName = Dir(Path) Dim Wb As Workbook For Each Wb In Workbooks If Wb.Name = OpenedFileName Then MsgBox "選択したファイルは既に開かれています。ファイルを閉じてやり直してください。" Set OpenedFilePath = Nothing Exit Function End If Next Wb Set OpenedFilePath = Workbooks.Open(OpenedFileName, UpdateLinks:=0) End Function



126:デフォルトの名無しさん
22/11/20 10:37:30.36 j5HG04Q5H.net


127:デフォルトの名無しさん
22/11/20 10:51:14.71 j5HG04Q5H.net
GetOpenFilenameでファイル選択しなかったときの返り値は
”false”

FALSE
じゃないよ
糞だよ

128:デフォルトの名無しさん
22/11/20 10:58:27.47 j5HG04Q5H.net
なんでstaticが出てこないんだよwww
Public Function OpenedFilePath() As String
'引数がtrueなら必ずダイアログを開くっての実装しようとおもったけどやめた
'OpenedFilePathは空白かどうかだけで判定。staticで変数を宣言
Static path
'空白じゃなければ終了
If (path <> "") Then
Exit Function
End If
'本体
path = Application.GetOpenFilename(FileFilter:="ExcelファイルおよびCSVファイル,*.xls*;*.csv")
'開かなかったら終了
If OpenedFilePath = "False" Then
OpenedFilePath = ""
MsgBox "ファイルが選択されませんでした。"
Exit Function
End If
End Function

129:デフォルトの名無しさん
22/11/20 11:33:22.40 AxU0uBeT0.net
>>125
なんでそんなすぐわかる嘘つくの?
Returns False if the user cancels the dialog box.
URLリンク(learn.microsoft.com)
そもそもその仕様だと false というファイル名を返せないだろ、馬鹿すぎ

130:デフォルトの名無しさん
22/11/20 11:34:19.38 AxU0uBeT0.net
>>126
> なんでstaticが出てこないんだよwww
そんな汚い設計を勧めたくないから

131:デフォルトの名無しさん
22/11/20 11:44:28.04 j5HG04Q5H.net
>>127
うわ、ずっと間違えてた。これは申し訳ない
言い訳すると、pathをstringで宣言してる時、booleanのfalseが"false"に変換される
これがあってからずっと文字列が返ってきてると思いこんでいた
これは本当に申し訳ない、間違った情報でドヤッてしまった
Sub foo()
Dim path As String
path = Application.GetOpenFilename()
Debug.Print TypeName(path)
End Sub
>>128
わかる

132:デフォルトの名無しさん
22/11/20 12:28:19.61 28UXg9Drd.net
「Workbooks.Open」のようなコードだけだとActiveBookが変わって
本来操作したいブック以外を参照してしまう事故を防ぐためにも
自分も>>123のようなコードがいいと思うな
あとはVariantはなんにでも使えてしまうから戻り値もWorkbookがいいと思うけど
private変数で宣言するならファンクションである必要もなくなりそうではあるんだが
それは前後の流れ次第かね

133:デフォルトの名無しさん
22/11/20 15:20:20.30 BdLJ6aAN0.net
>>117
楽しい・・・?
そうだね、VBAは弄ってて楽しい言語だね。
何でもお手軽に作れるしグラフィカルな部分が多いから
分かりやすいし。
お手軽と言えばJavaScript もそうかな。
逆にCOBOLとか何が楽しいのか俺には理解出来ない。

134:デフォルトの名無しさん
22/11/20 15:36:16.68 CFvDfimk0.net
おっちゃんが理解できるようにしてやろうか?

135:デフォルトの名無しさん
22/11/20 21:15:15.16 79zBHkdo0.net
>>100
ありがとうございます。
Dim Driver As New Selenium.WebDriver
Driver.AddArgument "credentials_enable_service=False"
Driver.AddArgument "profile.password_manager_enabled=False"
「パスワードを保存しますか?」というダイアログが表示されてしまいます。
このダイアログが邪魔でしょうがないです。
何とか消したいのですが、コード間違っていますか?

136:デフォルトの名無しさん
22/11/20 21:44:52.90 XCN8LgbG0.net
Driver.SetPreference "credentials_enable_service", False
こうじゃない?

137:デフォルトの名無しさん
22/11/20 22:06:06.02 79zBHkdo0.net
>>134
これも試しましたが、ダイアログが起動します、、、
うーん、困りました。
With Driver
.SetPreference "credentials_enable_service", False
.SetPreference "password_manager_enabled", False
.SetPreference "--password-store", basic

138:デフォルトの名無しさん
22/11/20 22:08:29.04 xkQL1


139:DmC0.net



140:デフォルトの名無しさん
22/11/20 22:21:11.90 79zBHkdo0.net
最悪、しょうがないので力業でWindows APIで座標指定で「×」をクリックします。

141:デフォルトの名無しさん
22/11/20 22:25:06.89 XCN8LgbG0.net
>>135
ソースコード全部見せて

142:デフォルトの名無しさん
22/11/20 22:41:36.64 kiSLDjFu0.net
ブラウザの操作なんかPADでやればいいじゃん

143:デフォルトの名無しさん
22/11/20 22:44:18.63 XCN8LgbG0.net
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("credentials_enable_service", false);
prefs.put("profile.password_manager_enabled", false);
options.setExperimentalOption("prefs", prefs);
Javaだとこうだから
Driver.SetPreference "prefs", ...
にしないといけないのかも

144:デフォルトの名無しさん
22/11/20 22:46:06.24 79zBHkdo0.net
>>138
色々と試しましたが、全部ダイアログが出ます、、、
Dim Driver As New Selenium.WebDriver
'パスワードを保存しますか?ダイアログを消す。(消えない)
'Driver.SetCapability "credentials_enable_service", "False"
'Driver.SetCapability "profile.password_manager_enabled", "False"
'Driver.AddArgument "credentials_enable_service=False"
'Driver.AddArgument "profile.password_manager_enabled=False"
With Driver
'.SetPreference "credentials_enable_service", False
'.SetPreference "password_manager_enabled", False
'.SetPreference "--password-store", basic
.Start "chrome"
.Get "URLリンク(hogehoge.com)
End With

'ID
Driver.FindElementById("UserID").SendKeys "IDhoge"
'ID
Driver.FindElementById("UserPASS").SendKeys "PASShoge"

'ログインボタンをクリック
Driver.FindElementById("id_login_button").Click

145:デフォルトの名無しさん
22/11/20 23:19:33.15 XCN8LgbG0.net
Dim prefs
Set prefs = CreateObject("Selenium.Dictionary")
prefs("credentials_enable_service") = False
prefs("profile.password_manager_enabled") = False
driver.SetPreference "prefs", prefs
これでどう?

146:デフォルトの名無しさん
22/11/20 23:54:01.57 79zBHkdo0.net
>>142
ありがとうござます。試しましたがやはダイアログが表示されます、、、

147:デフォルトの名無しさん
22/11/21 00:00:32.12 pQOpt44b0.net
driver.SetPreference "credentials_enable_service", False
Dim profile
Set profile = CreateObject("Selenium.Dictionary")
profile("password_manager_enabled") = False
driver.SetPreference "profile", profile
これでどう?

148:デフォルトの名無しさん
22/11/21 00:11:55.56 pQOpt44b0.net
Driver.SetPreference "credentials_enable_service", False
Driver.SetPreference "profile.password_manager_enabled", False
これでできそうな気がする

149:デフォルトの名無しさん
22/11/21 00:17:14.31 jvJhQ1Yn0.net
>>144 >>145
ダメでした。
VBA+Seleniumだと色々と制限がありそうですね。
Windows APIで強制クリックしかなさそうですね。

150:デフォルトの名無しさん
22/11/21 00:42:53.42 pQOpt44b0.net
Driver.AddArgument "--password-store=basic"
Driver.SetPreference "credentials_enable_service", False
Driver.SetPreference "profile.password_manager_enabled", False
これでどう?

151:デフォルトの名無しさん
22/11/21 00:48:06.12 jvJhQ1Yn0.net
>>147
ダメでした。
ただ、ページ遷移すると自動でダイアログが消えますので
初回ログイン時に出るのは結構目障りですけど、最悪諦めます。

152:デフォルトの名無しさん
22/11/21 08:04:05.28 GlEj3eeB0.net
>>148
結果的に消えるならいいじゃん
そこでボタンをクリックしないと動作が止まる、とかだったら困るけど、動けばいいんだよ
てか、オプション設定のタイミングが悪いんじゃないの?Chromeを起動する前に設定してる?

153:デフォルトの名無しさん
22/11/21 08:09:22.01 jvJhQ1Yn0.net
>>149
はい、してます。
試しにVBAで同じことを試していただければ100%再現できます。

154:デフォルトの名無しさん
22/11/21 17:38:44.89 oUN57f6ld.net
>>133
マルチポスト、更に言語の違いすらわからない馬鹿は消えろ

155:デフォルトの名無しさん
22/11/21 18:02:11.22 KDDXOYAA0.net
マルチポストはどうかと思うが少なくともこっちのスレだと言語は合ってるだろ

156:デフォルトの名無しさん
22/11/21 23:00:46.16 qzpyBUkr0.net
URLリンク(xtech.nikkei.com)
URLリンク(cdn-xtech.nikkei.com)
利用しているプログラミング言語
「あなたが現在使っているプログラミング言語は何ですか」という設問に対する回答の内訳。
最大3つ選択してもらった。回答数が10以上の言語を掲載
VBA頑張ってるじゃん
Rubyの倍やん

157:デフォルトの名無しさん
22/11/21 23:03:32.24 O4O9qqWgH.net
そりゃ母数が全然違うからな
事務員どころか営業でも使う人がいる

158:デフォルトの名無しさん
22/11/21 23:12:28.50 +rhbDZE90.net
>>153
これは結構意外な結果。
HTMLとCSSが思ったより低いね。
もっと意外だったのがSQLがランクインしていないこと。
「SQLはプログラミング言語じゃねーだろ」という意見も聞こえそうだけど、
それ言ったらHTMLだってプログラミング言語かと言えば怪しいよね。
iPhoneを開発するOvjective-C辺りはCに含まれるのかな?
でもそう考えるとSwift もランクインされていない。
最近はPython が主流なのかー。
まぁRubyはさして知るべし。

159:デフォルトの名無しさん
22/11/21 23:18:34.01 O4O9qqWgH.net
メインの言語がhtmlです!って人はちょっと・・・

160:デフォルトの名無しさん
22/11/21 23:28:16.93 +rhbDZE90.net
よく見るとTypeScriptが追い上げてるなぁ
Web版EXCEL開発しなきゃいけなくなったとき用に少し勉強しておくかな

161:デフォルトの名無しさん
22/11/22 00:17:55.04 z+hPxvMVd.net
>>153
rubyは毎年順位を落としている

162:デフォルトの名無しさん (ワッチョイ c28b-TaOI)
22/11/22 01:16:20.45 rA6aTIVz0.net
Pythoの何がいいの?C#の方がよっぽどコードが綺麗。

163:デフォルトの名無しさん
22/11/22 07:07:33.19 PnGd/teh0.net
VBAはバリバリ活躍してるけど、VBはもはや枯れた言語か。。

164:デフォルトの名無しさん
22/11/22 07:14:38.51 5norvibI0.net
むしろVB(VB.NET以外)がランクインしてるのに驚いたわ
さすがに保守案件なんだろうけど

165:デフォルトの名無しさん
22/11/22 08:25:23.22 jrlVPdOBH.net
>>159
アホが書いたぐちゃぐちゃインデント見た事ないっしょ
インデントがそのまま機能に繋がるってのは、
もうこれだけでいいんじゃないかってぐらい見やすいんだよ

166:デフォルトの名無しさん
22/11/22 08:29:03.16 jrlVPdOBH.net
>>153
これ相当歪な集計だぞ
期間は2週間、プログラマーがたったの16%であとは経営者3%なんて混じってる

167:デフォルトの名無しさん
22/11/22 10:15:24.80 YR0FNqFN0.net
VBAでフォームからセルに入力できるフォームを作るときにテキストボックスとセルをcontrolsauceで連結するのが一般的ですか?
今まで、読みとりボタンで、テキストボックス1=セルの値、更新ボタンで、セルの値=テキストボックス1としてたのですが、controlsauceを使った方がよいのか悩んでます

168:デフォルトの名無しさん
22/11/22 10:27:21.22 rA6aTIVz0.net
>>162
pythonマジでコードが気持ち悪いんだけど。

169:デフォルトの名無しさん
22/11/22 10:38:52.48 4t4l6PXg0.net
使わなきゃいいだけなのにあえて他言語の悪口を言うのはRuby厨か

170:デフォルトの名無しさん (オッペケ Srdf-rxZH)
22/11/22 12:03:51.19 DuxWDXCmr.net
>>163
プログラマー以外がプログラミングしちゃいけないわけじゃないし、別に歪じゃないだろ

171:デフォルトの名無しさん
22/11/22 12:11:04.68 KOo0nK71r.net
歪というか、アンケートの対象はプログラマーのみではなさそうだな
プログラマーなんて社会人の一部だし
この手のはなんかの指標として使えるものではないと自分は思ってる

172:デフォルトの名無しさん
22/11/22 12:51:18.95 rA6aTIVz0.net
pythonのメリットは何?

173:デフォルトの名無しさん
22/11/22 13:05:26.48 jrlVPdOBH.net
>>169
pythonスレへどうぞ

174:デフォルトの名無しさん
22/11/22 13:50:49.13 gWTAVy/70.net
VB.Netは確かにもうMicrosoft からも.NetCoreでは更新しませんよって宣言されてた気もするし、
終わった言語と言えばそうなのかもね。
ま、でも文法こそ違うものの、中身はC#と大して変わらないから、
やるならC#でいいよ。
C#とVBA覚えておけば必然的にVB.Netも書けると思う。

175:デフォルトの名無しさん
22/11/22 14:11:59.31 CBZvulmSa.net
vb.netとc#って
objective-cとswiftみたいなもんじゃね

176:デフォルトの名無しさん (ワッチョイ 4ead-+H9L)
22/11/22 14:54:19.77 0MFmILJN0.net
そうだな、ぜんぜん違うけどな

177:デフォルトの名無しさん
22/11/22 15:48:12.92 p3XTSB6d0.net
VBA は社員が使っている。一般人・アマチュア。
Linux, Docker, Heroku, AWS などを知っているはずがない。
Windows しか出来ない香具師
一方、Ruby on Rails は、ウェブ開発のプロ用。
ポートフォリオにも使う転職用だから、一般人よりも少なくなる
VBAが出来ても、プロとしては転職できない。
VBAが出来るから、モダンなウェブ開発企業が採用するとは思わない

178:デフォルトの名無しさん (ワッチョイ ef8e-P3Qh)
22/11/22 15:57:35.32 ntrRKrLv0.net
>>169
Pythonにあっという間に追い越され凋落が加速しているRubyざまあ

179:デフォルトの名無しさん
22/11/22 16:01:15.96 byhRgCcA0.net
>>174
ドヤ顔で香具師とか言われても……

180:デフォルトの名無しさん
22/11/22 16:04:23.96 ntrRKrLv0.net
>>174
プロ用wwwwww
つまり金貰えなきゃRubyなんて使わんわ!ということ

181:デフォルトの名無しさん
22/11/22 18:41:56.86 kVcqtNac0.net
でもどうだろ?
60歳前後の人はVB通ってきてからVBAを始めた人多いと思うからもっと人口多いと思う。

182:デフォルトの名無しさん
22/11/22 18:45:18.15 gWTAVy/70.net
あー、まぁ旧VB6ならそうかもね
VB.Netは完全にObject指向言語だから
そこからVBAやるってのはキツいんじゃないかな?
まぁその逆はもっとキツいと思うけど

183:デフォルトの名無しさん
22/11/22 18:51:44.40 kVcqtNac0.net
そういえばVBなんて言語あったなー(遠い目)
ウチにVBのリファレンス本が埃かぶってある。

184:デフォルトの名無しさん
22/11/22 19:36:41.19 chmk150V0.net
旧VBは結構な値段しただろ
使ったことがあるのはプロのプログラマーだけだよ
VBAやVB.NETは素人向け

185:デフォルトの名無しさん
22/11/22 21:05:06.99 X8yFxH5Ua.net
ネットでサンプルコードを漁っていると配列の型を宣言するときに括弧を省いているのが多いけれどなんでだろう
Dim Array As variant
Array = Range(“A1:C10”)
とか
Dim Array as Variant
Array = TempArray
みたいに
括弧無しの方が処理が早いのだろうか
そもそも括弧有り無しの違いってなんなんだろう

186:デフォルトの名無しさん
22/11/22 21:39:01.76 jrlVPdOBH.net
>>182
vbaの配列、特に静的配列はカスって事を念頭においておいてほしい。
他の言語はここまでめんどくさくない
静的配列は要素数が決まっていて拡張性が無い。
Dim array_a(5) As Long
動的配列は要素数を変動させることができるがめんどくさい
Dim array_a() As Long
これは配列をvariant型の変数に入れてるだけで、配列の型とは関係がない
Dim array_b As Variant
array_b = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
array_b = Array(1, 2, 3, 4, 5, 6)
どれが良いかというと、variantに入れておけば大体うまくいく
動的配列や静的配列を使うのもいいけど、めんどくさいだけだよ

187:デフォルトの名無しさん
22/11/22 22:02:02.71 hcZiH6eO0.net
sub hoge
 for i=1 to10
  if i=5 then exit sub
 next
end sub
サブルーチンのforとかloop中に
判定文でexit forどころか、exit subするのって、マズいんですかね?
メモリ喰っちゃう?

188:デフォルトの名無しさん
22/11/22 22:10:43.92 h1MkuzsC0.net
コメント書いとけばいいんじゃね

189:デフォルトの名無しさん
22/11/22 22:18:04.27 X8yFxH5Ua.net
>>183
ループを使って配列の要素を一つずつ埋めて行く場合は()付きで配列として宣言しなきゃダメじゃん?
だったら一括代入する場合も()付きで配列として宣言した方がわかりやすいかなあと思うんだよね

190:デフォルトの名無しさん
22/11/22 22:24:40.04 jrlVPdOBH.net
>>184
特にマズくない
最近は8GBぐらいメモリあるんだし多少食っても全然平気
>>186
vba結構長いこと使ってきたけど、そんなコード書いたことないなぁ
ちょっと分からないわ

191:デフォルトの名無しさん
22/11/22 22:47:31.59 X8yFxH5Ua.net
>>187
たとえば「シートの表を一旦二次元配列に格納して不要な行を取り除いてからシートに転記する」ってコードの場合、次のようになるでしょ?
Dim RawArr As variant
RawArr = Range("A1:E100").Value
Dim EditArr() As Variant
Redim EditArr(1 to Ubound(RawArr ,1), 1 to Ubound(RawArr ,2))
'↑これは括弧付きで配列として宣言しなければならない
Dim R as Long, C As Long, Rcount As Long
Rcount = 1
For R = 1 to Ubound(RawArr ,1)
If Not RawArr(R, 1) = "不要" Then
Rcount = Rcount +1
For C = 1 to Ubound(RawArr ,2)
EditArr(Rcount, C) = RawArr(R, C)
Next C
End If
Next R
Range("A1:E100").Value = EditArr
このコードにおいて「EditArr」を括弧付きで配列として宣言するならば「RawArr」もそれに準じた方がわかりやすいのではと思うんだよね
超細かくて申し訳ないけれど

192:デフォルトの名無しさん
22/11/22 23:39:01.43 +p7n4F+r0.net
jscriptの配列をそのままvbscriptにしたら
メッチャんこ速くなったからそっちの性能はいいんじゃね?

193:デフォルトの名無しさん
22/11/23 00:24:02.68 6lN/+0f80.net
>>188
これってのが
Dim EditArr() As Variant
なら、
Dim EditArr As Variant
でも動いてるようだが?
そのまま走らせたら両方ともそこ以外で実行時エラー出てるけど
さらに言えば、ReDimするなら(Option Explicit onでも)Dimすらなくても動いたような

194:デフォルトの名無しさん
22/11/23 03:52:19.28 uIyZhPcqr.net
>>188
俺も>>190と同じく
Dim EditArr() As Variant
Redim EditArr(1 to Ubound(RawArr ,1), 1 to Ubound(RawArr ,2))
だろうが
Dim EditArr As Variant
Redim EditArr(1 to Ubound(RawArr ,1), 1 to Ubound(RawArr ,2))
だろうが同じって認識だわ
動的配列っていうのをわかりやすくするために()つけておくか、くらいの感じだと思ってる

195:デフォルトの名無しさん
22/11/23 08:25:42.71 /bpEmzEb0.net
>>184
別にマズくはないよ。
メモリ使ってたとしても使ってる変数が
みんなPrivateのものなら関数抜けた時点で解放されるし

196:デフォルトの名無しさん
22/11/23 17:09:12.41 yNj03cHV0.net
【速報】上司「お前のことはExcelの印刷くらい信用している」→パワハラ
 広告代理店・電報堂(本社・東京都足立区)に勤務する50代の部長が20代の部下にパワハラを繰り返し、
部下をうつによる休職に追い込んだとして民事訴訟を起こされていたことが22日分かった。
 訴状によると部長は部下に対し日頃から「お前のことはExcelの印刷と同じくらい信用している」
という発言を繰り返しており、その結果「どれだけ仕事をしても信用が得られない」
と感じた部下は今年5月からうつの症状を発症するようになり、現在は休職しているという。
 なお上司は取材に対し「信用していると言っただけなのになぜパワハラ扱いされるのか理解できない」
と述べた。
スレリンク(curry板)

197:デフォルトの名無しさん
22/11/23 17:31:53.36 g5bfG+kA0.net
まあ言い方だろうな
Excelの印刷はたまに端や上下が切れたりするけどちゃんと手当てしてやればそこそこ使える
ワードなんかと違ってレイアウトを崩さずにページに収めるとか使える機能もあるしな

198:デフォルトの名無しさん (JP 0Hfe-stRS)
22/11/23 17:46:45.69 g30UJYxeH.net
それ完全に釣りだぞ

199:デフォルトの名無しさん (ワッチョイ c28b-TaOI)
22/11/23 17:54:50.35 WIX5xDy/0.net
香具師 ← 化石を久しぶりに見つけたw

200:デフォルトの名無しさん (ワッチョイ e201-IwB9)
22/11/23 18:00:15.39 g5bfG+kA0.net
>>195
うん、知ってる
他でも見たし

201:デフォルトの名無しさん
22/11/23 20:28:09.45 Y1rfQ/KW0.net
ジジババかよw

202:デフォルトの名無しさん
22/11/23 22:51:52.84 2bxJ1QPk0.net
そんなこと言ってると生きてる間に孫の顔みれんぞ

203:デフォルトの名無しさん
22/11/28 07:46:50.71 eMQ5RF7GM.net
独り者なら孫どころか子供もいないだろ

204:デフォルトの名無しさん
22/11/28 08:26:23.40 bGDdl4B7H.net
子供はいるけどもう20年ぐらい会ってないな

205:デフォルトの名無しさん (ワッチョイ 57da-3ksn)
22/11/28 14:54:18.05 nQn7KMv00.net
悲しい話と捉えていいすか?
生き別れ

206:デフォルトの名無しさん
22/11/28 19:26:05.44 QIQXhRT50.net
面会に来てくれないのか

207:デフォルトの名無しさん
22/11/29 11:12:10.65 OPHrjchb0.net
臭い飯の感想は?

208:デフォルトの名無しさん
22/11/29 11:36:14.54 NIQubJ4ZH.net
うまああああああい

209:デフォルトの名無しさん
22/11/29 17:17:30.27 OPHrjchb0.net
兄が元刑務官だけど、昔に比べればブタ箱の飯はだいぶ香ばしい匂いになったみたいだよw

210:デフォルトの名無しさん
22/11/30 08:01:42.75 wuoQBUdg0.net
スタンフォード監獄実験で普通の人でもそういう仕事につくと凶暴になる実験あったな

211:デフォルトの名無しさん
22/12/01 12:10:59.18 0YLKwBCI0.net
>>207
実はアレはヤラセだったと関係者が暴露してる

212:デフォルトの名無しさん
22/12/02 07:28:51.94 cUj7Y7YjH.net
神様たち
エクセルVBAで関数内関数を作りたいのですがやり方教えてください

213:デフォルトの名無しさん
22/12/02 08:16:36.75 tKD1RDkG0.net
無理、はい次の方~

214:デフォルトの名無しさん
22/12/02 09:43:13.76 YgL2+bOja.net
>>209
作る意味ないので別関数で呼び出せ

215:デフォルトの名無しさん
22/12/02 11:05:19.85 ZBzpMFYrd.net
「作れない」と「作る意味ない」は違くないか
>>209
つくれないので別の方法を検討しましょう

216:デフォルトの名無しさん
22/12/02 11:25:08.14 tKD1RDkG0.net
作る意味があるケースもあるけど現状作れないし作れるようになりそうもないから議論してもしょうがない、はい次の方~

217:デフォルトの名無しさん
22/12/02 11:30:07.60 OZyA684d0.net
なんでそんな事ばかりやりたいのか

218:デフォルトの名無しさん
22/12/02 11:44:11.14 aS3/tvEuH.net
他の言語でやってるとね~やっぱ欲しいなって思う場面が出てくるんだよね~
別にテクニカルな事をしたいわけじゃないのよ~

219:デフォルトの名無しさん
22/12/02 11:44:35.67 aS3/tvEuH.net
まぁ一つ言えばこの一連の流れで>>211は頭一つ抜けて無能だね~

220:デフォルトの名無しさん
22/12/02 12:18:39.53 ZBzpMFYrd.net
>>214
やりたい理由なんていろんなケースであるからそれをいってもしかたないでしょう
自分だって他言語では使う事もあるしね

221:デフォルトの名無しさん
22/12/02 14:20:37.10 T9SNtee60.net
神様達、ありがとうございました
無いと分かればそれはそれですっきりです

222:デフォルトの名無しさん
22/12/02 19:29:27.52 GBjZlXrEd.net
ある条件を満たせば使えるようになるのは内緒だ

223:デフォルトの名無しさん
22/12/02 20:03:26.58 ZBzpMFYrd.net
教えるつもりがないならだまってろ

224:デフォルトの名無しさん
22/12/02 20:23:06.13 OZyA684d0.net
>>220
いや、無理無理
黙ってられない年寄りばかりだから。

225:デフォルトの名無しさん
22/12/03 10:30:49.38 S7dtgmin0.net
神様達、よろしくお願いします
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

226:222
22/12/03 10:34:59.98 S7dtgmin0.net
神様たち、すみませんでした。解決できました。ごめんなさい

227:デフォルトの名無しさん
22/12/03 10:52:40.84 sKNlSpsi0.net
>>218
出来ないことはないが
VBAでは過去の遺物、負の遺産として
使用が暗黙的に禁止されている。
どうしても使いたければ
VBA GOSUBでググれ

228:デフォルトの名無しさん
22/12/03 12:46:31.23 pfZ7JepId.net
それサブルーチンだし関数内関数っていっていいの?
引数も渡せないでしょ

229:222
22/12/03 13:22:57.30 S7dtgmin0.net
GOSUBはミートソースでも食べられないと教わりました

230:デフォルトの名無しさん
22/12/03 13:27:47.06 HS9T9UMm0.net
> VBA GOSUBでググれ
全米がずっこけたわ
もう老害はこう言うのでマウント取るしかないんだな...

231:デフォルトの名無しさん
22/12/03 13:46:56.21 y5TLnC6XH.net
>>227
これ若造やぞ

232:デフォルトの名無しさん
22/12/03 13:59:22.91 53g102vo0.net
知ってる?
マウント取ってくるのは大抵年寄りだぞ
何故ならば体が思うように動かないからやたら口達者になるから。

233:デフォルトの名無しさん
22/12/03 14:03:12.32 y5TLnC6XH.net
そもそもこれマウントでもなんでもなく単に間違えてるだけでしょ

234:デフォルトの名無しさん
22/12/03 14:08:18.64 pfZ7JepId.net
GOSUBでも似たようなことできるけど○○できないとか制限あるよっていえばいいのに
最初の4行なんて余計でしょもったいぶって言う割には回答がおかしすぎて
マウントとかそういうレベルでもない

235:デフォルトの名無しさん
22/12/03 14:14:01.12 zLpEoZMka.net
↑ こう言うことを言い出すのもたいてい老害w

236:デフォルトの名無しさん
22/12/03 14:16:30.51 ywgcZJJ9M.net
高階関数のことならVBA関数では不可
ワークシート関数であればLAMBDA(とLET)

237:デフォルトの名無しさん
22/12/03 14:26:56.17 y5TLnC6XH.net
>>232
君、韓国人みたいな発言してるよ
気をつけたほうが良いと思う

238:デフォルトの名無しさん
22/12/03 14:33:59.75 zLpEoZMka.net
いきなり〇国とか言い出すのも老害によくある行動

239:デフォルトの名無しさん
22/12/03 14:59:55.68 YYHySLTHa.net
質問者はなんで出来ると思って質問したのか?

240:222
22/12/03 15:06:08.67 S7dtgmin0.net
アドバイス頂けただけありがたいです。
神様皆様ありがとうございます
マクロの記録なのですが、
マクロ記録→検索→全部→マクロ記録終了
そしてマクロを選択して編集すると
Macro
と書かれているだけでマクロが記録できません
記録してどんなワークシート関数を使っているのかみたいのですが
何か必要な設定があるのでしょうか?
現在excel2019を使っています

241:222
22/12/03 15:11:13.12 S7dtgmin0.net
>>236
class.propertyみたいな呼び出し方で
配列や、インスタンス代入変数を参照できたらいいなって思ったんです
function やsubを直接参照するのが気持ちよくなくて

242:デフォルトの名無しさん
22/12/03 15:32:48.63 y5TLnC6XH.net
>>237
特にない
365だけど、昔も今も普通に記録されるよ
URLリンク(i.imgur.com)

243:デフォルトの名無しさん
22/12/03 16:01:02.34 y5TLnC6XH.net
>>238
vbaは化石だから色々と諦めるしかない

244:デフォルトの名無しさん
22/12/03 17:35:51.41 su8PlnK50.net
>>235
それ、朝鮮総連のマニュアルだよ。
「あなたは朝鮮人の可能性があると言って相手の反応を見ましょう」

245:デフォルトの名無しさん
22/12/03 18:08:54.01 i+Roms8I0.net
>>224
それ、ちょっと思いついてネタ的に作ってみようかと思ったが
そもそもブロックレベルのスコープもたないVBAでやると大変なことになるだけだったわ

246:デフォルトの名無しさん
22/12/03 18:30:19.13 pfZ7JepId.net
>>232
回答もできず
できることで負けてるから若さで勝ち誇りたいプライドもかわいそうだな
そのまま年取るなよ
>>242
ある程度まとまったコードを例えば分岐のいくつかでやりたいとかの場合は有効かもしれんけどね

247:デフォルトの名無しさん
22/12/03 19:16:17.53 lRZF9sqh0.net
>>238
Class内にDictionaryなりCollectionなりをSetしておいてItemをため込み、
Property Getで取得することはできそうな気がする。。。
ごめん、検証してないし希望とは違うかもしれんけど。

248:デフォルトの名無しさん
22/12/03 22:12:00.65 K9qqP04ra.net
複数行にまとめてVLOOKUP関数を埋め込みたいのでFormulaR1C1プロパティを使っているのですが、マジックナンバーを避けるために検索範囲や列番号を変数で表現すると一行がやたら長くなってしまいます
出来るだけ簡潔に書きたいのですが、何かいい方法はありませんかねえ

249:デフォルトの名無しさん
22/12/03 22:38:24.22 RHVI1GN10.net
>>245
やたら長いとやらを貼らないと意味が分からない

250:デフォルトの名無しさん
22/12/03 22:54:43.08 y5TLnC6XH.net
>>245
indirectかませてるって事?

251:デフォルトの名無しさん
22/12/04 05:27:51.07 c2Va4wZ/0.net
>>245
長くなるというのがどういう状況かわからんけど、範囲をテーブル化して
構造化参照するとかListobjectで指定するとかは?

252:デフォルトの名無しさん
22/12/04 05:34:26.58 SnW1Fv340.net
テーブルとか職場の人が嫌がるのですが

253:デフォルトの名無しさん
22/12/04 07:20:23.13 c2Va4wZ/0.net
>>249
あーテーブル嫌がる人けっこう多いよねーw
>>245の件としてレスするけど、テーブル書式設定をクリアしてテーブルっぽく見せないってごまかしは置いてくとしてw
変数って書いてるからVBAコード内での一行なのだろうと仮定して、変数にすると長くなるのであれば変数名を短くするしかないかと。
多少なりともわかりやすくというなら列番号はEnum定義しておくとか。そのくらいかな。
的外れなレスだったらごめんね。

254:デフォルトの名無しさん
22/12/04 07:55:31.27 CPo+UFwT0.net
構造化参照も理解できない方たちが事務やってるの多いもんな
変数てLET関数のことかな
VBAの変数名の付け方が参考になるんじゃないか
むしろVBAだと変数名は少し長くなっても後から理解できるようにしておくというのが多いけど

255:デフォルトの名無しさん
22/12/04 08:09:42.33 TGszPi/mH.net
>>240
新旧の互換性を維持する系の言語は
いろいろ個性が強くなりますので
できないことはできないで教えていただけてすっきりです
>>244
アドバイスありがとうございます
クラ


256:スモジュール内のプロシージャーをすべてprivateにして 各プロシージャーの処理結果をモジュール変数の参照のようにしたいのです そうすれば多少は依存性が解消できて見通しよくなるような気がしてます 何かいい方法ないでしょうか?



257:デフォルトの名無しさん
22/12/04 08:10:27.13 TGszPi/mH.net
>>239
ありがとうございます
何か自分の設定がおかしいのかもしれません
調べてみます

258:デフォルトの名無しさん
22/12/04 10:02:49.72 ep+/H4bNd.net
自分はテーブル大好き派なんだが嫌いな人多いんだ

259:デフォルトの名無しさん
22/12/04 12:51:49.12 SnW1Fv340.net
嫌いどころかデータ蓄積の入力用シートすら作ってない不思議な人達ばかりよ現場は。
ひとつの表で完結させようとしている。
良くそれで仕事を完遂できるなと

260:デフォルトの名無しさん
22/12/04 13:25:18.39 pUfIiilw0.net
すみません
凄く基本的なマクロの質問になると思いますが質問させてください
シート2のA2からA列の最終行までの値をコピーして
シート1のB3に貼り付けをしたいのですがどうしたらいいでしょうか?
範囲を最終行に応じて自動的に変化させたいです
他にもB2から最終行まで、D3から最終行までとするにはどうしたら良いでしょうか?

261:デフォルトの名無しさん
22/12/04 14:09:55.48 5CZT7HJs0.net
>>252
クラス内のプロシージャを全てPrivateにして外部のモジュールから参照するのはしようと思えば出来る。

262:デフォルトの名無しさん
22/12/04 14:24:22.61 S/+N28Tr0.net
>>256
VBA 最終行 でググれ
URLリンク(www.excel-ubara.com)
> シート2のA2からA列の最終行
なら
With Worksheets("シート2")
LastRow =.Cells(.Rows.Count, "A").End(xlUp).Row
End With

263:デフォルトの名無しさん
22/12/04 15:39:27.71 E+FYkBejd.net
>>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
ちなみに代入元と代入先の行数を合わせる必要があるからそこは必要に応じて書き換えてね

264:デフォルトの名無しさん
22/12/04 15:42:10.01 TGszPi/mH.net
>>257
dim cls as class1
set cls =new class1
cls.arry(0)
cls.dictionary("x")
みたいなことできますか?
プログラムはかなりできあがってきたんですが
出来るようなら書き換えたいです

265:デフォルトの名無しさん
22/12/04 16:08:10.76 TGszPi/mH.net
神様の皆様、よろしくお願いします
動的配列を使って要素を追加するケースで質問です
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の最終要素以外の要素を削除することはあるのでしょうか?

266:デフォルトの名無しさん
22/12/04 16:43:26.32 cmQKIRXH0.net
>>261
VBE上でローカルウィンドウを出してF8を繰り返し押せば確認できるよ

267:デフォルトの名無しさん
22/12/04 16:53:49.22 S/+N28Tr0.net
>>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)

268:デフォルトの名無しさん
22/12/04 16:55:07.12 pUfIiilw0.net
>>258-259
ありがとうございます
凄く助かります

269:デフォルトの名無しさん
22/12/04 17:09:39.48 TGszPi/mH.net
>>262
>>263
ありがとうございます
例えば1万回は最終要素を削除できたけれど
10億回すると削除されない、もしくは最終要素以外を削除してしまう
という挙動はあり得ないのでしょうか?
言い換えてると
vbaの仕様として、ubound(ar)は配列の最終要素を参照しており
ubound(ar)-1は、最終要素の1つ手前を参照することを保証していると考えていいでしょうか?

270:デフォルトの名無しさん
22/12/04 18:25:54.71 SVL4/CbaH.net
>>265
良い。問題無い。
保証されないのはforeach
あれは順番が変わる事があるので、foreachで同じ事をやるのは絶対にNG

271:デフォルトの名無しさん (ワッチョイ dc05-AmP8)
22/12/04 18:42:02.29 QfYm9r1x0.net
請求書をつくるとき取引先ごとの売上をいれてるシートをピボットテーブルで日付ごとに合算してそれをコピペして請求書シートに貼ってるんですが
これをうまい具合に自動化することはできませんか?

272:デフォルトの名無しさん (スップ Sdc4-4FAg)
22/12/04 18:44:43.55 E+FYkBejd.net
そういうコードをかけばいいんじゃない?

273:デフォルトの名無しさん (ブーイモ MMba-5Y9H)
22/12/04 18:57:53.90 k+5uNib2M.net
ピボットテーブルの特定セルを参照する関数なかったっけ?

274:デフォルトの名無しさん
22/12/04 19:30:14.40 SVL4/CbaH.net
>>267
取引先ごとの売上をいれてるシートをピボットテーブルで日付ごとに合算してそれをコピペして請求書シートに貼ってる

請求書シートの所定の場所に、ピボットテーブルを表示させる
でいいんじゃないの?
取引先や日付範囲でフィルタすれば全自動になると思う

275:デフォルトの名無しさん
22/12/04 20:19:07.12 QfYm9r1x0.net
>>270
そのまま別のデータをコピペすることもあるので
ピボットテーブル直接表示させたらズレませんか?

276:デフォルトの名無しさん
22/12/04 20:33:04.86 SVL4/CbaH.net
>>271
どうズレるかはよく分からんけど・・・
ズレるのが怖いなら、
単純に参照すれば良い。黄色の部分は本当にシンプルな式だけで良いと思う
URLリンク(i.imgur.com)

277:デフォルトの名無しさん
22/12/04 20:47:06.88 dKAtQmN50.net
>>267
ピボットテーブルのフィルターに「取引先」を設定して
コピペするときにリンク貼り付けすれば
後はフィルターを切り替えるだけじゃないだろうか

278:デフォルトの名無しさん
22/12/04 22:29:31.05 TGszPi/mH.net
>>266
ありがとうございました
これでUboundを業務で使えます
これからもご指導よろしくお願いします

279:デフォルトの名無しさん
22/12/05 00:46:19.76 TwFYHOyP0.net
>>272
>>273
いずれもコピーは必要なんですね
ここに貼り付ける、ときたら
勝手に集計したのを貼ってくれといいのですけど
ちなみに零細で月に10枚程度しか請求書ださないとこは
ExcelのなんちゃってDBで十分ですかね?
フリーSQLも含めACCESSやファイルメーカーもたかってみたがデータの柔軟性がなさすぎて困った
これとこれをグループ化とかも簡単にできないし

280:デフォルトの名無しさん
22/12/05 01:25:43.19 vai3YpAKH.net
>>275
>ちなみに零細で月に10枚程度しか請求書ださないとこは
>ExcelのなんちゃってDBで十分ですかね?
じゃなくて、成長率
毎年の成長率が高い企業は、本当に気をつけたほうがいい
>フリーSQLも含めACCESSやファイルメーカーもたかってみたがデータの柔軟性がなさすぎて困った
Excelがおかしな事をしているだけなんだよ
それがたまたま日本の零細~中小に合致しているだけ

281:デフォルトの名無しさん
22/12/05 01:33:53.42 TwFYHOyP0.net
>>276
ファイルメーカーつかってたが
レコードを日付でまとめて一覧ししてレポートだす機能もないんだよ…

282:デフォルトの名無しさん
22/12/05 01:36:52.68 TwFYHOyP0.net
外部からインポートもコピペではできないし
テーブルを全く計算も不得意ときてる

283:デフォルトの名無しさん
22/12/05 03:27:44.54 FhvtASfFd.net
安い販売管理アプリすら買えない貧乏会社は潰れろ

284:デフォルトの名無しさん
22/12/05 06:57:51.15 /0dw54cWH.net
今どきはフリークラウドの管理ソフト(販売系、経理系、労務系)のサービスが山ほどあるでしょ
提供会社が無償提供やめたり、提供自体やめると面倒だけど
データ移行性を確保できるのならそっち方法がいい

285:デフォルトの名無しさん
22/12/05 07:47:07.80 TwFYHOyP0.net
>>279
>>280
それこそつかいにくい

286:デフォルトの名無しさん
22/12/05 11:40:12.06 BG/y+01pF.net
>>246
一例をそのまま貼ると、こんな感じです。
Dim VLOOKUP商品名 As String
VLOOKUP商品名 = "=VLOOKUP(RC" & eCols_明細.得意先コード & "," & WsName得意先テーブル & "!R" & eRows_通常.開始行 & "C" & eCols_得意先テーブル.得意先コード & ":R" & EndRow得意先テーブル & "C" & eCount_得意先テーブル & "," & eCols_得意先テーブル.得意先名 & "," & 完全一致 & ")"
めちゃくちゃ長くて可読性が悪いなと……

287:デフォルトの名無しさん
22/12/05 12:03:42.76 2GrVmVNid.net
変数に代入している際の話なら
VLOOKUP商品名 = ""
VLOOKUP商品名 = VLOOKUP商品名 & "AAA"
VLOOKUP商品名 = VLOOKUP商品名 & "BBB"
VLOOKUP商品名 = VLOOKUP商品名 & "CCC"
とかきりのいいところで分割して代入すればいいんじゃない?

288:デフォルトの名無しさん
22/12/05 12:08:08.63 1vq1KTlma.net
>>282
それ自力で展開できないようじゃやばいよ

289:デフォルトの名無しさん
22/12/05 12:14:29.23 EBZoNox0M.net
>>283
一応テーブルを参照する部分(VLOOKUP関数の参照範囲の箇所)を変数に代入することで少しは可読性があがったのですが、そもそも複数行へのVLOOKUP関数の埋込みをFormulaR1C1プロパティを使わなくても出来ないものなのかなあ、と思いまして
>>284
「展開」とは?

290:デフォルトの名無しさん
22/12/05 12:36:26.38 2GYg1OhQ0.net
>>267
「GROUP BY 複数条件」じゃないの?
GROUP BY 取引先, 日付

291:デフォルトの名無しさん (ワッチョイ 0101-9CiQ)
22/12/05 18:30:47.05 ovLbu+Xd0.net
>>285
「そもそも複数行へのVLOOKUP関数の埋込みをFormulaR1C1プロパティを使わなくても出来ないものなのかなあ」ってのがよくわからん
どんな機能を使おうが、セルに代入したいなら必ず一度はコードに記載しなきゃいけないんだから「eCols_明細.得意先コード」とかの変数名を短くするくらいしかないでしょ

292:デフォルトの名無しさん
22/12/05 20:42:26.49 vfUaA4330.net
>>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)"
みたいな感じ? 値や範囲をセルによって可変にしたいなら変数に格納する値を変えればいいわけだし。。。
こういうことじゃないのかな?

293:デフォルトの名無しさん
22/12/05 20:47:00.71 imBemMvO0.net
そもそも数式をVBAで入力することってあんまりないよな

294:デフォルトの名無しさん
22/12/05 21:46:02.27 vfUaA4330.net
>>289
そうですねぇ、あんまりないですね。
経験としては、計算式があるのにどうしても直打ちされて消されてしまうシートに
ボタン一発で計算式を復旧させる機能を付けた時くらいですかねw

295:デフォルトの名無しさん
22/12/05 22:43:24.64 /0dw54cWH.net
やっぱりVlookやsumifみたいな
組み込み関数のほうが、普通にコードするより速く強力なんでしょうか?

296:デフォルトの名無しさん
22/12/06 00:26:23.27 /P6wRT1K0.net
コードが短くなるから

297:デフォルトの名無しさん (ワッチョイ 6eda-RX5i)
22/12/06 05:54:39.62 iYcy7y+Q0.net
>>291
Excelに備わっている関数は強力だと思うし使い勝手が良かったりするものもありますね。



298:рフ場合はcountifやmatch、max、minあたりはVBA上でもWorksheetfunctionからよく使います。



299:デフォルトの名無しさん
22/12/06 06:19:16.90 MaIfapT+0.net
>>291
かなり最適化されてるしマルチスレッドで動作するから同じ処理ならVBAより相当速い

300:デフォルトの名無しさん
22/12/06 07:43:11.23 Al8BgWGSd.net
>>275
零細だったらそれこそappsheetでもいいんじゃないですか?

301:デフォルトの名無しさん
22/12/06 08:29:25.79 AKPIYKETr.net
関数を直接入力するとその後にシートに何かしら入力するたびに再計算されるから面倒だわ
その再計算が気にならないってんならvbaで処理しても気にならないレベルでしょ
countifなんか特に再計算に3分とかかかる場合もあるし

302:デフォルトの名無しさん
22/12/06 09:00:18.69 0FDDxcj9H.net
>>296
ピボットあたりにしてみては?
coutif遅いよ

303:デフォルトの名無しさん
22/12/06 11:03:13.75 jhjyA+WOr.net
>>297
意味が分かりにくくてすまん
だから関数を直接セルに入力するようなことはせずに、vbaでworksheetFunctionとかDictionaryとか使って結果だけを出力するなって意味
vbaで関数を入力するのは引き継ぎとか他人に渡すのを想定したときくらいかな

304:デフォルトの名無しさん
22/12/06 11:13:52.38 64yedq7Nd.net
2行目もよくわからんし
VBAで関数を入力とかイミフなんだが

305:デフォルトの名無しさん
22/12/06 11:40:45.39 QNWFDahpa.net
Application.Calculation = xlCalculationManual はとりあえず書いとくでしょ

306:デフォルトの名無しさん
22/12/06 13:28:57.18 /P6wRT1K0.net
つかVBAで関数使えるなんて最近知ったわ

307:デフォルトの名無しさん
22/12/06 13:35:48.17 41AW+NFUM.net
>>301
お馬鹿自慢要らない

308:デフォルトの名無しさん
22/12/06 18:35:08.85 +0skKz+k0.net
どんな機能も馬鹿には使えない

309:デフォルトの名無しさん
22/12/06 22:10:52.72 0FDDxcj9H.net
>>300
昔書いてたけど、最近はほとんど書いてないな
PCスペックが大幅に向上し、負荷のないコードが自然に掛けるようになった

310:デフォルトの名無しさん
22/12/06 23:34:20.45 HLCihNOZ0.net
2行目がひどすぎる

311:デフォルトの名無しさん
22/12/07 01:18:20.40 X43S603Q0.net
なにが?

312:デフォルトの名無しさん (JP 0H88-7kHv)
22/12/07 07:13:11.50 FarCeGHLH.net
演算処理能力、メモリ容量、基盤の伝送量と速度が大幅に向上し
組み込み関数による処理、VBA関数による処理などの差によるメモリ効率、処理速度を考えず
組み込み関数に依存しないコーディングを書けるようになった

言い換えると3行になるな
メモリ効率を悪化させてしまった

313:デフォルトの名無しさん
22/12/07 11:24:59.17 D8w4iSDKd.net
>>304
関数が入っているセルを参照するようなコードの場合
例えばCells(4, 3)にCells(3, 3)の値を10倍するような関数が入っているとして
Cells(3, 3).Value = 40
Debug.Print Cells(4, 3).Value
とやった場合、自動になっていればCells(4, 3)は400になった値が参照できて
手動ならもともと入っている値が参照できるという状態でしょ
スペックが向上、負荷のないコードだから書かないというのは危険な考えでは

314:デフォルトの名無しさん
22/12/07 11:32:32.02 utJNEW7kH.net
>>308
再計算に左右されるコードを書く事がそもそもおかしいんですわ


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