Excel VBA 質問スレ P ..
[2ch|▼Menu]
24:デフォルトの名無しさん
20/05/11 19:14:46.82 lwYcgX7G.net
粘着はたちが悪いからな

25:デフォルトの名無しさん
20/05/11 19:17:32.38 r23wnlJu.net
このスレのおかげで自殺者が2人減ったと思えば我慢できるだろ?
いや、そうでもないか
何が楽しくて生きているのだろう

26:デフォルトの名無しさん
20/05/11 21:28:55 bK9/OgSI.net
>>18
全くブレて無いんだがw
最初から何通りかは思いつくと言ってるだろw
最初から具体的に何通りなどと想定していない発言だ。

内容によって3通りになる場合もあれば5通りになる場合もある。
それに最適と考える1通りの場合だってある。
←これがあるから「何通りかは思いつく」の発言で、「最適の1通りの場合もありうる」等と追加して全ての状況に対応する必要は無い。
こんなのは日本語扱っていれば当然の話だからだ。

そうしないと、やり取り自体が出来なくなる。
お前の「ブレブレ」という単語の意味はどの辞書に載っているどういう意味なのか、そしてそういう説明をしていないからその不備をもって日本語が出来ていない等と突っ込むことなどという事態になってしまう。
だから相手の言っている意味を推し量ってやり取りをする必要があるし、俺もお前も実際にそうしてる。

しかし、お前の「・瞬時に5個思い付く(ドヤア)」は、「瞬時に5通り思いついたとして」の例示に対して、常に5通り思いつくと解釈したということだ。
これは完全にお前の日本語の理解が未熟だということを表している。

27:デフォルトの名無しさん
20/05/11 21:32:42 bK9/OgSI.net
そういうわけで「ブレブレ」なら俺の何処が「ブレブレ」なのかを示す必要がある。

そして、お前はまだ日本語の理解不足でかけた迷惑を謝罪していないな。
理解不足でないと言うなら、お前の「・瞬時に5個思い付く(ドヤア)」は日本語としてどういう解釈の後に成り立っているかを示す必要がある。

28:デフォルトの名無しさん
20/05/11 21:49:29.25 lwYcgX7G.net
>>24
いがみ合う二人を作ってしまうようなスレならば、無い方がいいのかもしれない

29:デフォルトの名無しさん
20/05/11 22:26:32 71O9fy8g.net
精度1ms程度、20ms間隔でイベントを発生させたいんですがVBAで使える良いタイマーは無いでしょうか
settimerでは精度も分解能も足りないようです。

30:デフォルトの名無しさん
20/05/11 22:47:05.78 Z5nXEgsW.net
>>28
その間止まってる?何か処理動いてる?

31:デフォルトの名無しさん
20/05/11 23:01:43.10 545F5kn8.net
そもそも高精度タイマーつかわんと、標準のタイマーで1msは無理なんだが

32:デフォルトの名無しさん
20/05/12 00:34:19 SrnItsWT.net
>>25
ブレてんじゃんww
できる奴なんだろ?
じゃないなら「私の"何通り"には1つでも含まれますごめんなさいもうしません」って謝れよww
あとコード付で答えたことないこともなw

>出来る奴は瞬時に何通りかは思いつく。

>バカと違って質問の意味が分かってる人はこういう答えになるから何通り等の方法等とならないことを知っている。

>内容によって3通りになる場合もあれば5通りになる場合もある。

>それに最適と考える1通りの場合だってある。

お前はVBAならintもint()も同一視するのかよww
素人めw
1個か3個か5個か、断言も出来ない臆病者めww

33:デフォルトの名無しさん
20/05/12 00:41:52 SrnItsWT.net
>>25
言い訳がましいんだよなww

>最初から具体的に何通りなどと想定していない発言だ。
→普通ツッコまれるから想定するんだよなあw

>内容によって3通りになる場合もあれば5通りになる場合もある。
それに最適と考える1通りの場合だってある。



34:最適は1つじゃないのかねww  それとも要件がわからないから最適と言えませんぴえーんとか社会で言ってるのかww >←これがあるから「何通りかは思いつく」の発言で、「最適の1通りの場合もありうる」等と追加して全ての状況に対応する必要は無い。 →後だしで言い訳ww それまでずっと「何通りか」を固持してるのになww >お前の「ブレブレ」という単語の意味はどの辞書に載っているどういう意味なのか、そしてそういう説明をしていないからその不備をもって日本語が出来ていない等と突っ込むことなどという事態になってしまう。 →頭固いねえw日本語の由来とかにこだわって嫌われるタイプだろwwww  そんなんだからずっとVBAおじさんなんだよw >しかし、お前の「・瞬時に5個思い付く(ドヤア)」は、「瞬時に5通り思いついたとして」の例示に対して、常に5通り思いつくと解釈したということだ。 →じゃあ「何通りか思いつく」は具体的に何個なんだよww  腹くくってきめろやww



35:デフォルトの名無しさん
20/05/12 00:51:58.58 SrnItsWT.net
>>31
面白いよなww
仮に結論をそっちに寄せると、
今までの発言が全て、
「瞬時に思い付きます。でもそれは1通りでもあるし複数通りでもあるし、思い付かないかもしれません」
とかいう、「私は10年以上のベテラン(笑)だけど雑魚です」って告白するような発言になるんだぜww
こんなちょろいやつ初めてだわw
サンプルコードも出せないわけですわww

36:デフォルトの名無しさん
20/05/12 07:39:51 I4uaPjG2.net
>>31
だからどこがブレてんだよwww
さっさと指摘しろな。

最初から場合によると言ってるがw
お前はIf文やSelect文を使えないのか?

37:デフォルトの名無しさん
20/05/12 07:42:40.74 I4uaPjG2.net
>>32
www
お前の考えだと頭が固くなるという話をしたのにw
そんな頭の固い話じゃ会話にならねえと言ってる。
あいかわらず日本語が未熟だなw

38:デフォルトの名無しさん
20/05/12 07:45:00.31 I4uaPjG2.net
>>33
全てに対応したやり取りなんて出来ないし、誰もやってないと言ってるんだ。
お前も出来ていない。
まともな奴ならそういう前提で会話してる。

39:デフォルトの名無しさん
20/05/12 07:47:08.17 I4uaPjG2.net
>>33
ところで、「・瞬時に5個思い付く(ドヤア)」が間違ってたことについては無視か?
触れて欲しくない?
そういうわけにはいかんぞ。
散々迷惑かけてるんだからな。

40:デフォルトの名無しさん
20/05/12 07:50:53.21 FFR24bht.net
>>33
これだけはその通りで草

41:デフォルトの名無しさん
20/05/12 08:13:35.16 FFR24bht.net
>>34
VBA10年おじさん大発狂の4連投してて草
高血圧だな、体は大事にしろよw
>だからどこがブレてんだよwww
自分が日本語分かってねえじゃねえかw
「場合による」は後だしだぞww何通りかは思い付くの時点で名言してるか?ww
>お前の考えだと頭が固くなるという話をしたのにw
お前のは表現のゆらぎじゃなくて、明確にずれてんだよw
ほら、1個か3個か?臆病者めwww
>全てに対応したやり取りなんて出来ないし、誰もやってないと言ってるんだ。
10年おじさんなら最適解出せるだろ?w
「瞬時に思い付きます。でもそれは1通りでもあるし複数通りでもあるし、思い付かないかもしれません。私は10年以上のベテラン(笑)だけど雑魚ですすいません」って告白してもいいぞw
>ところで、「・瞬時に5個思い付く(ドヤア)」が間違ってたことについては無視か?
最初から何個か名言しない臆病者のせいで仮に特定してあげてるだけだよww
お前のせいじゃんwww
5個のところ好きな数字にしろよww
数字特定したら次はほんとに「瞬時に思い付くか」テストしたげてもいいなw
てか>>28にも答えてないしなw
10年以上やってるのにww

42:デフォルトの名無しさん
20/05/12 12:29:54 I4uaPjG2.net
>>39
間違いを認めるか、間違って無い根拠を示せ。
逃げようとしてるのミエミエだぞw

↑もうこれを示さない限り先には進まん。

43:デフォルトの名無しさん
20/05/12 13:47:56 8FYlmiYH.net
>>40
言い返せないことを認めた負け宣言あざっすww
>>28もわかんないんだもんなw
よっわ、こりゃVBA10年おじさんだわww

44:デフォルトの名無しさん
20/05/12 13:53:42 8FYlmiYH.net
これに懲りたらてきとーなこと言ったり「10年以上前だけど(ドヤア)」とか言うの控えとけよww
こうやって恥かくからなww
あ、でもまた数年後思い出して修正するんでしたっけww
こいつのプロダクトとかアウトプットは信用できないなww

45:デフォルトの名無しさん
20/05/12 16:56:54 rA4rVxbw.net
その熱量を分けてくれ

46:デフォルトの名無しさん
20/05/12 17:47:19 kYSBNuZD.net
ここで教わった「空白になるまで」とか
「空白じゃな


47:ッれば」 って言うのが自分の職場で凄い役に立って多用してますわ ケースによるんだろうけどこれが当たり前なのかあまり使わない方がいいのはわからない Sub 空白まで処理 ()  Dim gy As Long  Do while cells(gy, 5) <> ""  何かの処理  gy = gy + 1  loop End Sub Sub 作成者を入力させる ()  Dim Ib As String  Ib = Inputbox ("フルネームで入力して下さい","作成者","")  If Ib <>"" Then  Range("A4").value = Ib  Else  Msgbox ("後で入力して下さい",vbokonly,"作成者欄")  End If End Sub ここら辺とか職場で多用してたら俺です。 あと色々覚えて作ってて思うのが絶望的に変数の名付け方にセンスが無い… データ型は深く覚えなくてもいいってサイトで見たけどVbMsgBoxResultとか前スレで教えたくた人のおかげで役立ってるし多分覚えた方がいいデータ型も結構あるんだろうなぁと  



48:デフォルトの名無しさん
20/05/12 18:29:41.52 mEZSl2qw.net
if文ってスゲー便利!って言ってるのと変わらんぞ
条件ループなんてプログラミング言語として最低限の必須機能

49:デフォルトの名無しさん
20/05/12 18:56:23 kYSBNuZD.net
>>45
変わらんぞというかまさにそこに感動してるレベルの入門者ですよ
ただ毎日コードを何かしら書かないとすぐ忘れ書き方のルールを忘れちゃいますわ

ある程度多用する基本的なコードは自分でテンプレ作ってそこから引用してるから
必要なコードは必要な時だけそこから引っ張れば良いという人ももいたけどやっぱこのマクロ作ろうと思ってカタカタと悩まずに打って作れるようになりたいですね

50:デフォルトの名無しさん
20/05/12 19:58:51 +ufJa1rh.net
>>44
繰り返しの内側やIF文の内側ではインデント(字下げ)すると読みやすくなる
あと個人的には変数宣言(Dim)の下に空行入れてる

51:デフォルトの名無しさん
20/05/12 20:04:14 DpVh1gfo.net
システムにお願いしても駄目ならプロセスのプライオリティを
思い切り上げて他のプロセスをできるだけ起動させないとか。

52:デフォルトの名無しさん
20/05/12 20:42:29 UaCqmgBQ.net
>>44
書けないとか忘れるなんて言ってるけどただのネタだろ?

普通にコピペしたら Msgbox とはならない
自動的に MsgBox に修正されるからな

53:デフォルトの名無しさん
20/05/12 20:49:40.88 kYSBNuZD.net
>>49
いや、ここでのレスは手打ちだよ
そのぐらい練習癖つけないと忘れちゃう
とにかく体に無意識に覚えさせたい

54:デフォルトの名無しさん
20/05/12 20:54:41 UaCqmgBQ.net
は?手打ちならVBEに入力しなきゃ意味ないだろう
それとも常時Excelに触ることができない環境でイメージトレーニングでもしているの?
それならキーボードじゃなくて手書きをお勧めするよ

55:デフォルトの名無しさん
20/05/12 20:57:51 +ufJa1rh.net
自治厨うざっ

56:デフォルトの名無しさん
20/05/12 21:00:50 kYSBNuZD.net
いやVBE触りながらスマホで2ちゃんもやってるんよ
家帰ってダラダラしたいのに勉強しなきゃという強迫観念すらあるんですわ
そのぐらい使いこなせるようになりたひ

57:デフォルトの名無しさん
20/05/12 21:01:39 I4uaPjG2.net
>>41
逃げるのかねwww
間違いを認めるか、間違って無い根拠を示せ。

58:デフォルトの名無しさん
20/05/12 21:03:00 UaCqmgBQ.net
へー、スマホで打ち込んだのか
スゲーな
尊敬するわ

59:デフォルトの名無しさん
20/05/12 23:00:42 E9stGPs+.net
プログラミングはif文に始まりif文に終わる

60:デフォルトの名無しさん
20/05/12 23:09:10 wZ0jz+Fj.net
endifで終わるとか言ってみる

61:デフォルトの名無しさん
20/05/12 23:41:32 +oXZY/9K.net
スマホは本当に入力がむずかしい
iphoneだけど、@ とか ? とか ; とか、
半角と全角を見分ける方法ないですかね

62:デフォルトの名無しさん
20/05/12 23:46:48 afM3cpmW.net
>>58
馬鹿は消えろ
死ね

63:デフォルトの名無しさん
20/05/13 00:01:32 J5ZD6qBk.net
>>58
表示フォント変えられないのか?

64:デフォルトの名無しさん
20/05/13 08:48:22.54 EdihJer9.net
>>41
なんだ、敗走か?
言い返せなくなると敗走?
「・瞬時に5個思い付く(ドヤア)」が間違ってたことに反論出来なくて敗走?

65:デフォルトの名無しさん
20/05/13 14:24:20 MXc7+Bkx.net
>>58
俺より馬鹿じゃないから気にしなくて良いよ!

66:デフォルトの名無しさん
20/05/13 16:28:05 plPxHhzS.net
VBA7以前でPtrSafe付コードを修正する際にコンパイルエラーを避けるには、該当箇所を一つずつコメントアウトしないといけないのでしょうか

67:デフォルトの名無しさん
20/05/13 19:05:47 LXKghMMB.net
'変数cに列番号が記録されており、その右隣の列から右に向かって最終列(変数LastCol)までに一つ目の文字列"型式"がある1つ手前の列番号を変数ccに記録したいのですが、これであってますか?
 

cc = Range( c : LastCol ).Find("型式").Columns - 1

68:64
20/05/13 19:07:10 LXKghMMB.net
↑1行目だけでする場合をお願いします

69:デフォルトの名無しさん
20/05/13 19:55:58.54 y5a8J0I9.net
検索条件が甘いのと見つかんないとエラーが出るのが問題だけど
cc = Range(Columns(c + 1), Columns(LastCol)).Find("型式").Column - 1

70:デフォルトの名無しさん
20/05/13 19:57:35.91 53iRH1vl.net
有ってない

71:64
20/05/13 20:29:22 LXKghMMB.net
>>66
ありがとうございますm(__)m

72:デフォルトの名無しさん
20/05/14 10:15:33 PW5MRjsJ.net
>>41
結局、勝ち負けだけで論理的に正しい間違いはどうでも良い奴だったな。
こういう奴は確かに拘ることをしないからいつまでたっても初心者を脱っすることが出来ない。

実際には言い負かされてるんだが言い負かされなかった形だけあれば満足すると。

こういう糞がどこで自尊心を保っているのか全く理解出来んw

73:デフォルトの名無しさん
20/05/14 10:46:53 n+ookAJT.net
基地外同士のケンカがやっと終わったか
最初に引いた奴の方が偉いな

はい次の方

74:デフォルトの名無しさん
20/05/14 14:49:40 PW5MRjsJ.net
>>70
悔しいのか?

75:デフォルトの名無しさん
20/05/14 15:41:22 uf0GqGLY.net
>>71
くやしいです!!
URLリンク(stat.ameba.jp)

76:デフォルトの名無しさん
20/05/14 19:23:42 gToX6xvs.net
ネットで拾ったコードをつぎはぎ足してoffice2010のExcelで使ってたけど
今年会社がやっと2019に上げるらしい
使えなくなるコードがあったら終わるわ

77:デフォルトの名無しさん
20/05/14 20:29:36 Q92dSSfg.net
32bit→64bitならエラーが出るかもだが、それ以外は特に変更はないはず

78:デフォルトの名無しさん
20/05/14 21:48:19.93 I7glJUMv.net
クラス化して再利用考えて作ってたのですが、getter経由で取得したデータを処理したり、ボタン関係の養生したり、フォームに描画反映したりでユーザーフォームにコードが集中してしまいました
構造が悪いのでしょうか
ユーザーフォーム
-ボタンイベントコールバッククラス
-シートのデータ書き換えクラス
-割込タイマークラス
-シリアル機器インターフェースクラス
--各機器のラッパークラス
---COMポートクラス

79:デフォルトの名無しさん
20/05/14 21:52:56.60 pdcPp9kM.net
>>75
何でクラス化したのにフォームに集中するの?
寧ろクラスに分割されるんじゃなくて?

80:デフォルトの名無しさん
20/05/14 22:15:42 Q92dSSfg.net
>>75
単純にGetter以外のメソッドを実装すればいいのでは?

81:デフォルトの名無しさん
20/05/14 22:42:08.69 tZ6/JvsB.net
>>73
MDIとSDIの違いに気をつけて

82:デフォルトの名無しさん
20/05/14 23:22:45 gToX6xvs.net
ユーザーフォームは俺のようなVBA超初心者にとって憧れだわ
ある程度マクロ作ったら

とりあえずThisWorkbookのとこで
Private sub Workbook_Open()
UserForm1. Show
End Sub
を作って
ユーザーフォームのShowModalをFalseにする

で使えるのはコマンドボタンという…
ボタンクリックに標準モジュールで作ったプロシージャ名を貼り付けると…

毎回これじゃそりゃ上達しないわ
もっとコード覚えて効率的な高見を目指したいところだけど脳がついていかない

83:デフォルトの名無しさん
20/05/14 23:30:25 Q92dSSfg.net
>>79
それで十分

84:デフォルトの名無しさん
20/05/14 23:40:56.55 gToX6xvs.net
>>80
いや、流石にこれじゃいかんわ情けないと自覚
標準モジュールにあるプロシージャが自作のコードならまだしもマクロの記録を無駄な動きだけ消して貼り付けたりネットのをパクって少しいじったりするだけ
ユーザーフォームもコマンドボタン以外に使い方わからず使ってないし
CSVやtxtを読み込んだりとかそういう特殊な事書ける人は凄いわ
若い頃から情報システムとかそういう勉強すればよかったわ
英語 資格 PCスキルの時代は変わらんね

85:デフォルトの名無しさん
20/05/14 23:50:14.00 I7glJUMv.net
>>76>>77
ポーリングしてる機器Aの状態に応じて機器B、Cに異なるコマンドを送ってデータを取得する様な処理が何通りか合って多くなってます。インターフェースクラスとの間に処理クラスみたいなのを入れるのでしょうか

86:デフォルトの名無しさん
20/05/15 00:17:59 qMmlu16O.net
>>82
データの取得をクエリサービスクラスに分離してください
フォームクラスはフォーム自身の管理とサービスの呼び出しだけを行うものです

87:デフォルトの名無しさん
20/05/15 00:41:48 ZviQyBFQ.net
>>81
今はボタン使うマクロしか作る予定がないだけだと思うが。
csvを使うマクロが必要になった時に調べるだろうし、
今は知らないからって自虐的になる必要ないんでは?

>>82
一般的にオブジェクト指向は「最終的にやらせたいこと(=やれること)」をメソッドとしてクラスに定義にして、
そのための条件や必要なデータなどはクラス自体が判断したり取得したりするか、引数として与える
もし、Getter等でデータをメインルーチンに集めて統合的に処理するなら従来の手続き型になる

今回の例で言えば、
機器BCからから受け取ったデータを処理するPublicメソッドを定義したクラスを作って
機器Aに応じて機器BCにコマンドを送ったりっていった処理は、そのクラス内でやるのがいいかも

88:デフォルトの名無しさん
20/05/15 01:33:02 PClFYiSI.net
ExcelフォームにExcelグリッドコントロールがあればむてきだたかもしれない

89:デフォルトの名無しさん
20/05/15 01:38:53 BHVdwBuM.net
割り込みとかコールバックとかわからないシロートの発想で笑える

90:デフォルトの名無しさん
20/05/15 01:42:44 h8nORdF5.net
>>84
CSVを扱う


91:K要性がじりじり迫ってるんだけどネットにあるコードの窃盗常習犯で覚える脳みそがないからノースキル野郎  当然モチベもないから全然進んでない ?ダイアログで任意のCSVデータを選択して それを今開いているシートに読み込まれる(CSVデータは読み込んだ後に自動で閉じる) (元々シートにグラフがあるがそれはそのまま) ?このシートをブック内の一番右にシートをコピー 多分?はどこかで拾えそうだけど?のプロシージャがありそうでなかなかネットから盗めず激ムズ  ここの勉強できる人達は勝ち組だよ



92:デフォルトの名無しさん
20/05/15 02:20:59 +1dt40Gj.net
勝ち組かどうかは別問題だな

93:デフォルトの名無しさん
20/05/15 09:02:28 uW7fixd9.net
非表示のシートがいくつかある状態で、一番右端のシートをアクティブにしたいのですが、worksheets.countで取得しようとすると、非表示のシートが選択されてしまいます
表示されているシートの一番右端をアクティブにするにはどうすればいいですか?

94:デフォルトの名無しさん
20/05/15 09:32:08 uW7fixd9.net
質問がおかしかったので書き直します

マクロブックでなくアドインでやっています
一番右端のシートから値を取ってきて、その後に作成する新規のシートに貼り付けたいです
Sheets(WorkSheets.Count).Activateで、表示上の一番右端のシートをアクティブにすることはできるのですが、操作ができません
非表示のシートがいくつかあり、シート番号は若くてもそちらがWorkSheets.Countで選ばれているようで、値はそこから取ってきてしまっているみたいです
エクセルの表示上のシートの並びで、一番右端を選択してそこから値を取りたいのですが、どうすればいいでしょうか?

95:デフォルトの名無しさん
20/05/15 09:38:25 /bb/ZDbJ.net
For i = Worksheets.Count To 1 Step - 1

If Worksheets(i).Visible Then
Worksheets(i).Activate
Exit For
End If

Next

96:デフォルトの名無しさん
20/05/15 12:19:24 Ras8zr0W.net
>>91
あー、なるほど
カウントを減らしていって最初にヒットしたVisibleでループを抜ければいいんですね
助かりました、ありがとうございます

97:デフォルトの名無しさん
20/05/15 12:51:25 wvzrJYUA.net
シート1にラベルやタイトルや色を設定した
雛型になるグラフがあって
それをアクティブなシートにコピーして貼り付けられる事コード、もし出来れば教えて下さい。

今はシート1に戻ってグラフをコピーして
貼りたいシートに戻って貼り付け
をやってます
数値は反映させなくて雛形になるグラフをとにかくすぐにアクティブなシートに持ってきたいです

マクロの記録でもやり方わからずです…

シート1にある("グラフ1")というのを
アクティブなシートに貼り付け、わかりませぬ

98:デフォルトの名無しさん
20/05/15 13:03:29 ChXNP+/8.net
Ruby なんか、こういう感じで、CSV ファイルを1行ずつ処理していくだけ。
GUI で処理すると、Rubyよりも何倍も難しい

require 'csv'

file_path = ARGV[ 0 ]

# 引数には、ファイルパスを渡す。input.csv
# CSV ファイルを、1行ずつ処理する
CSV.foreach( file_path ) do |row|
puts "#{ row[ "col_1" ] } : #{ row[ "col_2" ] }" # 列1・列2
end

99:デフォルトの名無しさん
20/05/15 17:00:34 WgI7x3A0.net
シート1にあるグラフ1をアクティブシートにコピペ

調べてみたところ結局俺がやりたいのはシンプルにこれか
マクロの記録だと限界あるわ。

100:デフォルトの名無しさん
20/05/15 19:22:44 h8nORdF5.net
Sub 数値反転()
Dim ms As VbMsgBoxResult
Dim gg As Long
ms = MsgBox("マイナス値?", vbYesNo, "B列C列を確認")
If ms = vbYes Then
gg = 113
Do While Cells(gg, 2) <> ""
Cells(gg, 17) = Cells(gg, 2) * -1
Cells(gg, 18) = Cells(gg, 3) * -1
gg = gg + 1
Else
Do While Cells(gg, 2) <> ""
Cells(gg, 17) = Cells(gg, 2)
Cells(gg, 18) = Cells(gg, 3)
gg = gg + 1
Loop
End If
End Sub

ドヤ顔でいけるだろと思ったらnoを選択するとElseの次のDo whileのところでエラーになりますけどどう手直ししたらいいですか

101:デフォルトの名無しさん
20/05/15 19:26:11 B9XmHC3V.net
>>96
vbNoのとき、ggはいくつ?

102:デフォルトの名無しさん
20/05/15 19:30:22 h8nORdF5.net
>>97
レスした後にvbnoの時のgg入れ忘れてたと思ってElseの後に
gg=113を入れたけどやっぱりエラーになりました
根本的にルールが間違ってます?

103:デフォルトの名無しさん
20/05/15 19:39:43 RYV/7Uuu.net
1つめの Do while に対応する Loop がない

104:デフォルトの名無しさん
20/05/15 19:49:26.82 h8nORdF5.net
>>99
ほんと恥ずかしすぎるミスでした。
ありがとうございます。 
間違っといてなんだけど自分の考え方が間違ってない事もわかってホッとしました。
何言ってんだこいつと思われて当然ですがそんな気持ちです

105:デフォルトの名無しさん
20/05/15 20:01:55 BHVdwBuM.net
>>100
そもそもそれ以前に馬鹿過ぎて話にならない

106:デフォルトの名無しさん
20/05/15 20:42:05 SPdgeRtp.net
インデントで分かったりしないもんかね

107:デフォルトの名無しさん
20/05/15 20:58:58.45 Syu0A9me.net
VSのエディタなら勝手にやってくれるけどExcelVBEはそこまで親切じゃないから、
 ・Doと書いたら、中間の処理書く前にLoopをセットで先に書く。
 ・中間の処理はインデント付ける
こうしないと長い処理だとミスる。

108:デフォルトの名無しさん
20/05/15 21:24:59 1l79UUQc.net
田中先生ユーチューバーになってたんか。
エクセル系ユーチューバーは前からいるけど
彼らのチャンネル登録者数どんどん抜いてくな。
マクロ以外にもエクセルの機能全般もアップしてるし
他のエクセルユーチューバ―はもう躍進することはないな。
ご愁傷さま。

109:デフォルトの名無しさん
20/05/15 21:26:28 xUEF26i7.net
インデントしてるとVBEが勝手に空行にもインデント用スペースいれやがる

110:デフォルトの名無しさん
20/05/15 22:51:12 B9PySqRq.net
マクロの処理だけmsオーダーで止めて、シートでの作業には影響させない方法ってありますか?
sleepやapplication.waitを使うと、止めている間はマウスポインタが待機中に切り替わって気が散ります。

111:デフォルトの名無しさん
20/05/15 23:02:13 RYV/7Uuu.net
意味が解らん

112:デフォルトの名無しさん
20/05/15 23:07:56 b6XlKvF2.net
DoEvents を定期的に入れてあげて妥協するのがいいのでは

113:デフォルトの名無しさん
20/05/16 00:10:47.87 DWLUsoam.net
気が散るほうが悪い

114:デフォルトの名無しさん
20/05/16 00:24:20.49 dnsCYCpT.net
waitが長いと入力作業とかできんだろうな
マルチスレッドできたっけ?

115:デフォルトの名無しさん
20/05/16 00:27:49.65 PCcdgCy6.net
>msオーダー
ジェイッ、ジェイッ、ジェイッ、ジェイッwwww
>>107
俺もわからん。
どういう意味だろう。

116:デフォルトの名無しさん
20/05/16 00:41:23.65 W7xr4LsN.net
馬鹿は全角英文字、自分勝手な略語を使う法則

117:デフォルトの名無しさん
20/05/16 02:12:04 PXYVKn+N.net
非表示にすれば気にならないとか?

118:デフォルトの名無しさん
20/05/16 02:34:42 LVL/9uGV.net
msオーダーって何?

119:デフォルトの名無しさん
20/05/16 05:07:24 VHZcBZeD.net
マイクロ秒で処理するってことかな?

120:デフォルトの名無しさん
20/05/16 08:49:36.47 mgXvg9qv.net
あーミリ秒指定でマクロを止めたいってことか?
それでもまだわからん

121:デフォルトの名無しさん
20/05/16 09:59:53 Tk5Omr1n.net
せめてmsecオーダーと書けばわかりやすいのに
しかも100ミリとかじゃないか?数ミリは気づかないはず
GetInputStateとDoEventsでどうにかできんか

122:デフォルトの名無しさん
20/05/17 13:30:28 qdHuVgcd.net
>>110
マルチプロセスならできそうな気がしない?
知らんけど

123:デフォルトの名無しさん
20/05/17 13:48:57 LkRZ0WP+.net
[現象]
e


124:xcelの vbaエディタで、フォントの設定が出来なくなった。 ツール−オプション−エディタの設定を選択すると、excelが強制終了してしまう。 [環境] windows10 pro office personal 2019 [発生時の操作] エディタの設定を、MSpゴシックから、 Ricty Diminished(Ricty Diminished Discordだったかも) に変更した直後から発生するようになった。 http://blog.higty.xyz/post/vbe-setting-error/ https://www.moug.net/tech/exvba/0150130.html ここを見ましたが、レジストリキー:HKEY_CURRENT_USER\Software\Microsoft\VBA\7.1\Common が存在しません。 よろしくお願いします



125:デフォルトの名無しさん
20/05/17 14:05:50 dvSHUyYR.net
>>119
死ね

126:デフォルトの名無しさん
20/05/17 14:06:13 GAbG2JNM.net
>>119
ワークシートのページレイアウトからテーマは変更できる?

127:デフォルトの名無しさん
20/05/17 14:11:19 oJIHh9Jk.net
>>120
この馬鹿モンが

128:デフォルトの名無しさん
20/05/17 14:12:58 oJIHh9Jk.net
>>121
はいできますがそれでは解決しないのです

129:デフォルトの名無しさん
20/05/17 14:21:32 GAbG2JNM.net
>>123
まずレジストリのVBA\7.1\Commonが存在しないことが異常だから、Excelを再インストールするのが一番の早道な気がする

130:sage
20/05/17 14:31:40 LkRZ0WP+.net
>>121
123 は私の書き込みではないのですが、レイアウトを変更して何かファイルを保存すれば
レジストリキーが作成されるということかと思い試しましたが、作成されませんでした
>>124
やはりそれしかないですかね。

131:sage
20/05/17 14:34:16 LkRZ0WP+.net
>>125
×レイアウトを変更して
○テーマを変更して

132:デフォルトの名無しさん
20/05/17 15:10:42 IJ/C56sM.net
>>104
萩原をおぎわらって読んだりIndirectをインディレクトって言ってたから
そっ閉じしたわ。

133:デフォルトの名無しさん
20/05/17 16:08:33 Rv0pB+iF.net
インストロールと言ったら怒られたナリみたいなもんか。

134:デフォルトの名無しさん
20/05/17 16:57:48 lqCZHYYc.net
奇天烈大百科が巻物だったら、まさしくインストロールだぞ

135:デフォルトの名無しさん
20/05/17 17:38:29 Rv0pB+iF.net
奇天烈大百科が巻物だったら、まさしくインストロールだぞ

If the eccentric encyclopedia is a scroll, it's just an installation.

風変わりな百科事典が巻物なら、それは単なるインスタレーションです。

意味がさっぱり分からなかったので、Google翻訳かけてみたら、意味が分かるようになったぞ。

136:デフォルトの名無しさん
20/05/17 18:09:25 /J9Aoh2W.net
英語の方が簡単なんだよ
早くそれに気づけ

137:デフォルトの名無しさん
20/05/17 21:52:01 FPkLjraN.net
textboxの値チェックがうまく行きません。20~100までの範囲を入れたいのでchangeイベントで値がこの範囲か監視してます。
100を超えていたら100に、20を下回ると20になる様にリミッタを付けました。
すると100にした後にキーボード操作で30にしようとすると、0を消した時点で強制的に20になり、そこから何か押すと100になってしまいます。
どうすれば上手くいくのでしょうか。

138:デフォルトの名無しさん
20/05/17 22:01:56 GAbG2JNM.net
>>132
そういう時はスピンボタンを使った方がいいよ

139:デフォルトの名無しさん
20/05/17 22:08:25 dvSHUyYR.net
馬鹿はWindowsのUIもわからず自分勝手なインターフェースを作る法則

140:デフォルトの名無しさん
20/05/17 23:08:18.21 eOQVNdAF.net
>>132
Exitイベントを使う

141:デフォルトの名無しさん
20/05/17 23:21:22.78 vwApF1ba.net
大学で学ぶ物理を板書1枚にまとめてみた
URLリンク(www.youtube.com)
物理の研究分野を板書1枚にまとめてみた
URLリンク(www.youtube.com)
理学部と工学部の違いとは?
URLリンク(www.youtube.com)
大学と大学院の違い
URLリンク(www.youtube.com)
高校と大学の積分は決定的に違う?微分積分学の基本定理は実はすごい!
URLリンク(www.youtube.com)
数学にはどんな研究分野がある?数学の世界地図を一枚に描いて紹介してみた!
URLリンク(www.youtube.com)

142:デフォルトの名無しさん
20/05/17 23:30:26.45 oJIHh9Jk.net
>>136
ハゲとるやないかw
髪でうまくごまかしてるようだけど

143:デフォルトの名無しさん
20/05/17 23:46:16 FPkLjraN.net
>>135
ありがとうございます
コピペ対策以外は出来ました

144:デフォルトの名無しさん
20/05/18 20:11:09 W41e55Iy.net
ちょっと息抜きにセルや文字の色をVBAでやろうと思ったら大きく二通りあるんだね
カラープロパティとRGB関数
どっちで覚えるのが王道?

145:デフォルトの名無しさん
20/05/18 20:20:02 W41e55Iy.net
いや違うか
そんなに普段カラフルに使わないならカラーインデックス
細かく覚えて使いたいならカラープロパティかRGBってとこか
うーん前者かな

146:デフォルトの名無しさん
20/05/18 20:31:02.10 yqkonDmK.net
>>139
わかってない
ColorプロパティにRGB関数やインデックスの値を代入するんだよ
基本的には両方使わないと色が変えられない

147:デフォルトの名無しさん
20/05/18 20:37:00.50 W41e55Iy.net
>>141
なるほどぜんぜんわかってなかった
インデックス番号で数種類覚えちゃうか
RGB関数でいくつかの組み合わせ覚えちゃうか
何やろうにしても何種類かやり方があって初心者にきついわ

148:デフォルトの名無しさん
20/05/18 20:57:41 ZYPN6nu1.net
>>142
インデックス色はカラーパレットの位置に設定してある色だから環境によっては色が変わるよ

149:デフォルトの名無しさん
20/05/18 21:11:42.05 W41e55Iy.net
ほんと勉強になりますわ
最初は0と255の組み合わせだけでRGB関数で覚えちゃうようにしますわ
この8種類くらいしか多分使わないかな

150:デフォルトの名無しさん
20/05/18 22:21:45 MHLvuQaE.net
どういう時どれを使うのが適しているかで選ぶのであって、どっちで覚えるとかじゃない

151:デフォルトの名無しさん
20/05/18 22:29:22.00 1EfbZi6v.net
>>145
社内のマクロツールの中味たまに見るけどなんとなく、どっちかに統一してるって感じの人が多くない?

152:デフォルトの名無しさん
20/05/18 22:32:29.74 MHLvuQaE.net
どっちでもいいんであれば好きに統一すればいいんじゃね

153:デフォルトの名無しさん
20/05/18 22:39:17.66 W41e55Iy.net
たかが色だと思って使わないと思ってたけど
メッセージボックスで黄色い部分の数値を確認後、入力とかで
その範囲を真っ黄色にしてやって元に戻したり 
他人、(おばちゃん)とかにはとにかくわかりやすく作るようにしてみることにした

154:デフォルトの名無しさん
20/05/19 05:32:55.42 MuDspthZ.net
rgb値の組み合わせを覚えるのは大変なのでWebColor名で覚えるといいかも。
rgbAliceBlue
rgbLightBlue
rgbBlue
rgbMidnightBlue
みたいな感じで記述すればrgb値を指定できる。よく使うやつだけ覚えとけばいい。

155:デフォルトの名無しさん
20/05/19 07:27:37.05 oLWOmWCd.net
vbRed  「・・・。」
vbGreen 「・・・。」
vbBlue  「・・・。」

156:デフォルトの名無しさん
20/05/19 07:31:04 FCPlMZOp.net
>「・・・。」
あーウゼー

157:デフォルトの名無しさん
20/05/19 08:30:30.69 D2gK0p2V.net
あーおれも、基本はそのvb〜だ
グラデーション的な見栄えが必要の時とかは変えるけど

158:デフォルトの名無しさん
20/05/19 17:47:57 J9ZEMPxu.net
アクティブシートをコピーした後のコードがムズいなぁ
細かい所をいじる知識がなさすぎ

159:デフォルトの名無しさん
20/05/19 18:07:59 uEHEf6fZ.net
逆に原紙を作っておいて普段はそのコピーを使うようにするといい

160:デフォルトの名無しさん
20/05/19 18:17:23 J9ZEMPxu.net
>>154
ありがとう。そ


161:の方が都合そうしたよ。 シート名の取得も特定のセルから何とかできた。あとはブック名を指示したいんだけど調べりゃすぐ出てきそうだけどなかなか出て来ないわ エラー出ないように細かく作りたいもんだけ



162:デフォルトの名無しさん
20/05/19 19:19:11 qQEEjoZO.net
10万円給付の紐付けなんかVBAで余裕に出来るのに話題にならないのが不思議

163:デフォルトの名無しさん
20/05/19 19:48:13 NEFcECdd.net
>>156
こういう馬鹿が職場にいて余計混乱させているだけだろ

164:デフォルトの名無しさん
20/05/19 20:27:14.48 F1sOO54s.net
そのうち消えた10万円とかなるんじゃね

165:デフォルトの名無しさん
20/05/19 20:56:41 FccdSYLU.net
クルーズ船の消えた弁当

166:デフォルトの名無しさん
20/05/19 21:22:42.73 oItI0x3V.net
絶対にわからん関数ばかり使ってる理解不明なコードをネットからパクって少し弄ったら完全に業務で対応できてラッキー
そこから今日もユーザーフォーム適当に作ってメッセージボックスとインプットボックスを組んでいって
効率化したけど相変わらず上達せん毎日だわ

167:デフォルトの名無しさん
20/05/19 21:40:57 OdQysc5C.net
ここは日記帳ではない

168:デフォルトの名無しさん
20/05/19 22:33:25.66 flKz052u.net
>>156
1億2000万件のデータを、誤読無く、重複無く、生死の年月日まで
勘案して処理する自治体まで勘案してエクセルに食わせろとな?

169:デフォルトの名無しさん
20/05/19 23:58:06 dbsigt0d.net
相談させてください。
羅列されたデータにオートフィルタをかけて、その中でのランダム選択をシートを使わないでやる方法が知りたいです。
A列(1〜6年)、B列(1〜8組)、C列(名前)
みたいな感じで、AとBから複数選択後にCから選び出す感じです。

今までは作業用のシートを設けてオートフィルタをかけたものを別シートにコピーし、その中でrandomで選んでいました。
諸事情により作業用シートが作れないので、おそらく配列内だとは思うのですが・・・・

170:デフォルトの名無しさん
20/05/20 00:07:04 vp7gkhOL.net
>>163
VBAなら、とりあえず乱数を発生して、その行がオートフィルタかかってたらもう一度乱数からやり直せばいいだけ

171:デフォルトの名無しさん
20/05/20 01:09:15.99 0kv4kFzW.net
俺なら配列に入れてからやる

172:デフォルトの名無しさん
20/05/20 02:23:38.33 p47zFM4b.net
>>163
フィルタ掛けた結果をROWだけ配列に抜き出して、乱数で配列の中から一つ選べばいいんじゃね

173:163
20/05/20 06:43:20.78 98prku9b.net
>>166
早速ありがとうございます
そのままだとフィルターかけられたROWも選ばれません?
オートフィルターかけた配列を一旦コピーすればいいのでしょうか?

174:デフォルトの名無しさん
20/05/20 07:03:34.54 skRckF1R.net
ランダム選択が目的なら、そもそも、オートフィルターにこだわる必要あるのかな?
VBA使うなら、オートフィルターを扱うのは微妙に面倒だから、自前でフィルターすればいいと思うぞ

175:デフォルトの名無しさん
20/05/20 08:27:34.61 DAK+DifG.net
オートフィルタやオートフィルタ的コードは使わない
VBAのみで
乱数生成は一度きり
3桁の乱数 a を生成する
まず a を6で割って余りが0〜5まででるんで
0が出たら6年
1が出たら1年
2が出たら2年
3が出たら3年
4が出たら4年
5が出たら5年
とする
例えばここで2が出て2年が選択されたら
さっきの乱数 a をまた使って、組数で割って余りを求める
んで同じようにして
今度は選択された組の人数で割って個人に割り当てられた番号でを特定する
これを繰り返して複数人を選んでいく
選ぶ過程で同じ学年はダメとかあるなら
上の例で言えば一旦2が出たら次は2


176:を排除するとか 繰り返し文の中で if 使って条件つけていく 学年の数、組の数、クラス人数は予めシートに表にしておくこと とかとか



177:デフォルトの名無しさん
20/05/20 08:28:13.58 DAK+DifG.net
一度きりってのは1人選ぶのに一度ってことでしゅ

178:デフォルトの名無しさん
20/05/20 08:30:51.03 DAK+DifG.net
6学年あって6組の学年があったりするとだめか
階層が下がるごとに乱数生成してもいいのかね

179:デフォルトの名無しさん
20/05/20 09:26:22 CH9LsvxQ.net
何年何組は決めておいてから誰にするかを乱数?

180:デフォルトの名無しさん
20/05/20 09:45:48.33 B3VzH1xh.net
A1からオートフィルターをかけて
もし、変数aが空欄でなければ、B列で変数aと同じ値だけにしぼる
もし、変数bが空欄でなければ、C列で変数bと同じ値だけにしぼる
もし、変数cが空欄でなければ、D列で変数cと同じ値だけにしぼる
というような書き方をおしえてください

181:デフォルトの名無しさん
20/05/20 11:11:47 nPhD6zxk.net
>>163
Dim r As Range
Dim n As Long
Dim i As Long

With Range("A1").CurrentRegion
With .Offset(1, 0).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible)

n = 0
For Each r In .Rows
n = n + 1
Next
if n = 0 then
exit sub
end if
n = 1以上n以下の乱数

i = 1
For Each r In .Rows
If i = n Then
rを使ってなにかする
Exit Sub
End If
i = i + 1
Next

End With
End With

182:デフォルトの名無しさん
20/05/20 11:23:14.33 qcti6JCq.net
>>173
まず意味が不明 →「変数aが空欄」
よくわかんないけど、
特定の表について、
VBA上で宣言した変数ごとに対応した列をフィルタする簡単なものなら書いてみた。
「空欄」の意味が不明なので、NULLか空文字か、それともセルのことだったのか、
そういうことも質問時に気にするように。
URLリンク(i.imgur.com)

183:173
20/05/20 12:02:23.38 B3VzH1xh.net
>>175
ありがとうございますm(_ _)m

184:デフォルトの名無しさん
20/05/20 15:56:33 a9xbkMkn.net
余談だがグループの中から1人をランダムで選ぶ場合、
同じことを繰り返すと同じ人が選ばれる可能性がでてくる
それを無くしたい場合はシャッフルしてから順番に選ぶといい

185:デフォルトの名無しさん
20/05/20 17:56:09 IoSOKpcA.net
何かをさせるときに一度リセットする的なアレですね。
プロージャくっつけて作ってる初心者だが何となくその感覚
スマホとPCのデータが両方消えて
前スレで乱数の発生教えてくれた人のコードが見れなくなったが、やべえ

186:デフォルトの名無しさん
20/05/20 18:10:15.58 bnGR2vkC.net
いや選ばれる人の立場になると、
俺前回やったのにまた俺?他の選ばれてない人はズルくね?みたいな

187:デフォルトの名無しさん
20/05/20 22:38:53 cJtMR3HM.net
前スレの教えてくれた恩人のコードやっと見つけたあああああ


Sub 乱数発生させる()
  For 項目 = 1 To 6  '項目数を変更
    列 = 項目 + 2
    最小 = WorksheetFunction.Min(Cells(6, 列).Resize(30))
    最大 = WorksheetFunction.Max(Cells(6, 列).Resize(30))
    幅 = 最大 - 最小
    For サンプル = 1 To 25 'サンプル数
      行 = サンプル + 5
      If Cells(行, 列) = "" Then
        Cells(行, 列).NumberFormatLocal = "0.000"
        Cells(行, 列) = Rnd() * 幅 + 最小
        Cells(行, 列) = Round(Rnd() * 幅 + 最小, 3)
      End If
    Next
  Next
End Sub




これがC6がサンプル1の項目1が始まりになるシートで使えてるんだけど
これをC12からとかに変えるにはどこ弄ればいいですか?
誰かコメントをこれに添えてもらえませんか…
前スレの大恩人に救われたコードを更に流用したいです

188:デフォルトの名無しさん
20/05/20 23:01:


189:11 ID:cJtMR3HM.net



190:デフォルトの名無しさん
20/05/20 23:30:59 c0Xo7Xk6.net
自分で考えることもしない厚かましい馬鹿は消えろ

191:デフォルトの名無しさん
20/05/20 23:45:16 cJtMR3HM.net
Sub 乱数発生させる()
  For 項目 = 1 To 20  '項目数を変更
    列 = 項目 +
    最小 = WorksheetFunction.Min(Cells(12, 列).Resize(36))
    最大 = WorksheetFunction.Max(Cells(12, 列).Resize(36))
    幅 = 最大 - 最小
    For サンプル = 1 To 25 'サンプル数
      行 = サンプル + 11
      If Cells(行, 列) = "" Then
        Cells(行, 列).NumberFormatLocal = "0.000"
        Cells(行, 列) = Rnd() * 幅 + 最小
        Cells(行, 列) = Round(Rnd() * 幅 + 最小, 3)
      End If
    Next
  Next
End Sub


考えたけどこれかなぁ
他ののまっさらなシートだと乱数再現できた
けど反映させたいシートだと乱数が狂う
配置も数値も同じなのに
シートの設定かぁ

192:デフォルトの名無しさん
20/05/20 23:49:11 Khp9j2eL.net
数千行〜数万行のデータが格納されてるシートで、
ある特定の範囲で最大文字数を取得するには
配列関数で{Max(Len(A1:A10))}とすれば良いですが(VBA上でEvaluateを用いて実装してます)、その最大文字数があるセルの場所(行番号)を特定する方法はありますか?

最大文字数のセルが複数ある場合はその全てのセルの行番号を取得したいです

最終的に、範囲内の最大文字数のセルの背景色を変えたいのが目的です

193:デフォルトの名無しさん
20/05/21 00:19:06 OWznaKXu.net
>>184
セルの文字数がその最大文字数と同じなら色変えるっていう条件付き書式を設定する

194:デフォルトの名無しさん
20/05/21 00:48:50 V79mjqtT.net
>>185
条件付き書式とは盲点でした。
トライしてみます。ありがとう!

195:デフォルトの名無しさん
20/05/21 01:01:13.95 eV6pHfb6.net
わかった。
けどもう後には引けんほど次元の高い事やらせてて手に負えないわ

196:デフォルトの名無しさん
20/05/21 03:10:09.62 u8xoMicA.net
気づくの遅すぎ

197:デフォルトの名無しさん
20/05/21 06:58:06 Qgph+4Ei.net
フォームのラベルに計算結果を表示について。
結果がプラスならそのまま、マイナスなら赤字にマイナス記号を付けるにはどうしたらいいですか?


350
-350←赤字

198:デフォルトの名無しさん
20/05/21 07:11:40.31 uDeLtUtB.net
>>183
セル範囲の内容で乱数の範囲が設定されているからデータが入力されていないと乱数にならないのに、
そこにデータが入力されていると値が更新されない
なかなかのジレンマだね

余談だけど、直感的にわかりにくいから、ループカウンタは列と行そのものにした方がいいと思うぞ
あと、項目数と基準セルを変えたいなら、それを変数にして、こんな感じ
項目数 = 20
サンプル数 = 25
行0 = Range("C12").Row
列0 = Range("C12").Column
For 列 = 列0 To 列0 + 項目数 - 1
...以降も上記変数で置き換える


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

1438日前に更新/267 KB
担当:undef