1 名前:1000 [2020/05/10(日) 13:43:45 ID:Nkoph0aj.net] ExcelのVBAに関する質問スレです コード書き込みや作成依頼もOK ※前スレ Excel VBA 質問スレ Part65 https://mevius.5ch.net/test/read.cgi/tech/1584430040/ ※デフォルト設定
98 名前:デフォルトの名無しさん mailto:sage [2020/05/15(金) 13:03:29 ID: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 名前:デフォルトの名無しさん [2020/05/15(金) 17:00:34 ID:WgI7x3A0.net] シート1にあるグラフ1をアクティブシートにコピペ 調べてみたところ結局俺がやりたいのはシンプルにこれか マクロの記録だと限界あるわ。
100 名前:デフォルトの名無しさん [2020/05/15(金) 19:22:44 ID: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 名前:デフォルトの名無しさん mailto:sage [2020/05/15(金) 19:26:11 ID:B9XmHC3V.net] >>96 vbNoのとき、ggはいくつ?
102 名前:デフォルトの名無しさん [2020/05/15(金) 19:30:22 ID:h8nORdF5.net] >>97 レスした後にvbnoの時のgg入れ忘れてたと思ってElseの後に gg=113を入れたけどやっぱりエラーになりました 根本的にルールが間違ってます?
103 名前:デフォルトの名無しさん mailto:sage [2020/05/15(金) 19:39:43 ID:RYV/7Uuu.net] 1つめの Do while に対応する Loop がない
104 名前:デフォルトの名無しさん [2020/05/15(金) 19:49:26.82 ID:h8nORdF5.net] >>99 ほんと恥ずかしすぎるミスでした。 ありがとうございます。 間違っといてなんだけど自分の考え方が間違ってない事もわかってホッとしました。 何言ってんだこいつと思われて当然ですがそんな気持ちです
105 名前:デフォルトの名無しさん [2020/05/15(金) 20:01:55 ID:BHVdwBuM.net] >>100 そもそもそれ以前に馬鹿過ぎて話にならない
106 名前:デフォルトの名無しさん mailto:sage [2020/05/15(金) 20:42:05 ID:SPdgeRtp.net] インデントで分かったりしないもんかね
107 名前:デフォルトの名無しさん mailto:sage [2020/05/15(金) 20:58:58.45 ID:Syu0A9me.net] VSのエディタなら勝手にやってくれるけどExcelVBEはそこまで親切じゃないから、 ・Doと書いたら、中間の処理書く前にLoopをセットで先に書く。 ・中間の処理はインデント付ける こうしないと長い処理だとミスる。
108 名前:デフォルトの名無しさん mailto:sage [2020/05/15(金) 21:24:59 ID:1l79UUQc.net] 田中先生ユーチューバーになってたんか。 エクセル系ユーチューバーは前からいるけど 彼らのチャンネル登録者数どんどん抜いてくな。 マクロ以外にもエクセルの機能全般もアップしてるし 他のエクセルユーチューバ―はもう躍進することはないな。 ご愁傷さま。
109 名前:デフォルトの名無しさん mailto:sage [2020/05/15(金) 21:26:28 ID:xUEF26i7.net] インデントしてるとVBEが勝手に空行にもインデント用スペースいれやがる
110 名前:デフォルトの名無しさん mailto:sage [2020/05/15(金) 22:51:12 ID:B9PySqRq.net] マクロの処理だけmsオーダーで止めて、シートでの作業には影響させない方法ってありますか? sleepやapplication.waitを使うと、止めている間はマウスポインタが待機中に切り替わって気が散ります。
111 名前:デフォルトの名無しさん mailto:sage [2020/05/15(金) 23:02:13 ID:RYV/7Uuu.net] 意味が解らん
112 名前:デフォルトの名無しさん mailto:sage [2020/05/15(金) 23:07:56 ID:b6XlKvF2.net] DoEvents を定期的に入れてあげて妥協するのがいいのでは
113 名前:デフォルトの名無しさん mailto:sage [2020/05/16(土) 00:10:47.87 ID:DWLUsoam.net] 気が散るほうが悪い
114 名前:デフォルトの名無しさん mailto:sage [2020/05/16(土) 00:24:20.49 ID:dnsCYCpT.net] waitが長いと入力作業とかできんだろうな マルチスレッドできたっけ?
115 名前:デフォルトの名無しさん mailto:sage [2020/05/16(土) 00:27:49.65 ID:PCcdgCy6.net] >msオーダー ジェイッ、ジェイッ、ジェイッ、ジェイッwwww >>107 俺もわからん。 どういう意味だろう。
116 名前:デフォルトの名無しさん [2020/05/16(土) 00:41:23.65 ID:W7xr4LsN.net] 馬鹿は全角英文字、自分勝手な略語を使う法則
117 名前:デフォルトの名無しさん mailto:sage [2020/05/16(土) 02:12:04 ID:PXYVKn+N.net] 非表示にすれば気にならないとか?
118 名前:デフォルトの名無しさん mailto:sage [2020/05/16(土) 02:34:42 ID:LVL/9uGV.net] msオーダーって何?
119 名前:デフォルトの名無しさん mailto:sage [2020/05/16(土) 05:07:24 ID:VHZcBZeD.net] マイクロ秒で処理するってことかな?
120 名前:デフォルトの名無しさん mailto:sage [2020/05/16(土) 08:49:36.47 ID:mgXvg9qv.net] あーミリ秒指定でマクロを止めたいってことか? それでもまだわからん
121 名前:デフォルトの名無しさん mailto:sage [2020/05/16(土) 09:59:53 ID:Tk5Omr1n.net] せめてmsecオーダーと書けばわかりやすいのに しかも100ミリとかじゃないか?数ミリは気づかないはず GetInputStateとDoEventsでどうにかできんか
122 名前:デフォルトの名無しさん [2020/05/17(日) 13:30:28 ID:qdHuVgcd.net] >>110 マルチプロセスならできそうな気がしない? 知らんけど
123 名前:デフォルトの名無しさん mailto:sage [2020/05/17(日) 13:48:57 ID: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 名前:デフォルトの名無しさん [2020/05/17(日) 14:05:50 ID:dvSHUyYR.net] >>119 死ね
126 名前:デフォルトの名無しさん mailto:sage [2020/05/17(日) 14:06:13 ID:GAbG2JNM.net] >>119 ワークシートのページレイアウトからテーマは変更できる?
127 名前:デフォルトの名無しさん [2020/05/17(日) 14:11:19 ID:oJIHh9Jk.net] >>120 この馬鹿モンが
128 名前:デフォルトの名無しさん [2020/05/17(日) 14:12:58 ID:oJIHh9Jk.net] >>121 はいできますがそれでは解決しないのです
129 名前:デフォルトの名無しさん mailto:sage [2020/05/17(日) 14:21:32 ID:GAbG2JNM.net] >>123 まずレジストリのVBA\7.1\Commonが存在しないことが異常だから、Excelを再インストールするのが一番の早道な気がする
130 名前:sage mailto:119 [2020/05/17(日) 14:31:40 ID:LkRZ0WP+.net] >>121 123 は私の書き込みではないのですが、レイアウトを変更して何かファイルを保存すれば レジストリキーが作成されるということかと思い試しましたが、作成されませんでした >>124 やはりそれしかないですかね。
131 名前:sage mailto:119 [2020/05/17(日) 14:34:16 ID:LkRZ0WP+.net] >>125 ×レイアウトを変更して ○テーマを変更して
132 名前:デフォルトの名無しさん mailto:sage [2020/05/17(日) 15:10:42 ID:IJ/C56sM.net] >>104 萩原をおぎわらって読んだりIndirectをインディレクトって言ってたから そっ閉じしたわ。
133 名前:デフォルトの名無しさん [2020/05/17(日) 16:08:33 ID:Rv0pB+iF.net] インストロールと言ったら怒られたナリみたいなもんか。
134 名前:デフォルトの名無しさん mailto:sage [2020/05/17(日) 16:57:48 ID:lqCZHYYc.net] 奇天烈大百科が巻物だったら、まさしくインストロールだぞ
135 名前:デフォルトの名無しさん [2020/05/17(日) 17:38:29 ID:Rv0pB+iF.net] 奇天烈大百科が巻物だったら、まさしくインストロールだぞ ↓ If the eccentric encyclopedia is a scroll, it's just an installation. ↓ 風変わりな百科事典が巻物なら、それは単なるインスタレーションです。 意味がさっぱり分からなかったので、Google翻訳かけてみたら、意味が分かるようになったぞ。
136 名前:デフォルトの名無しさん mailto:sage [2020/05/17(日) 18:09:25 ID:/J9Aoh2W.net] 英語の方が簡単なんだよ 早くそれに気づけ
137 名前:デフォルトの名無しさん mailto:sage [2020/05/17(日) 21:52:01 ID:FPkLjraN.net] textboxの値チェックがうまく行きません。20~100までの範囲を入れたいのでchangeイベントで値がこの範囲か監視してます。 100を超えていたら100に、20を下回ると20になる様にリミッタを付けました。 すると100にした後にキーボード操作で30にしようとすると、0を消した時点で強制的に20になり、そこから何か押すと100になってしまいます。 どうすれば上手くいくのでしょうか。
138 名前:デフォルトの名無しさん mailto:sage [2020/05/17(日) 22:01:56 ID:GAbG2JNM.net] >>132 そういう時はスピンボタンを使った方がいいよ
139 名前:デフォルトの名無しさん [2020/05/17(日) 22:08:25 ID:dvSHUyYR.net] 馬鹿はWindowsのUIもわからず自分勝手なインターフェースを作る法則
140 名前:デフォルトの名無しさん mailto:sage [2020/05/17(日) 23:08:18.21 ID:eOQVNdAF.net] >>132 Exitイベントを使う
141 名前:デフォルトの名無しさん [2020/05/17(日) 23:21:22.78 ID:vwApF1ba.net] 大学で学ぶ物理を板書1枚にまとめてみた https://www.youtube.com/watch?v=naBcXoq4aOI 物理の研究分野を板書1枚にまとめてみた https://www.youtube.com/watch?v=4W-pWuXUaZQ 理学部と工学部の違いとは? https://www.youtube.com/watch?v=eJH4nKU6mJA&t=80s 大学と大学院の違い https://www.youtube.com/watch?v=xBKAEvTegN8 高校と大学の積分は決定的に違う?微分積分学の基本定理は実はすごい! https://www.youtube.com/watch?v=V9i_zlbssbs&t=475s 数学にはどんな研究分野がある?数学の世界地図を一枚に描いて紹介してみた! https://www.youtube.com/watch?v=fK_JGVti5y8
142 名前:デフォルトの名無しさん [2020/05/17(日) 23:30:26.45 ID:oJIHh9Jk.net] >>136 ハゲとるやないかw 髪でうまくごまかしてるようだけど
143 名前:デフォルトの名無しさん mailto:sage [2020/05/17(日) 23:46:16 ID:FPkLjraN.net] >>135 ありがとうございます コピペ対策以外は出来ました
144 名前:デフォルトの名無しさん [2020/05/18(月) 20:11:09 ID:W41e55Iy.net] ちょっと息抜きにセルや文字の色をVBAでやろうと思ったら大きく二通りあるんだね カラープロパティとRGB関数 どっちで覚えるのが王道?
145 名前:デフォルトの名無しさん [2020/05/18(月) 20:20:02 ID:W41e55Iy.net] いや違うか そんなに普段カラフルに使わないならカラーインデックス 細かく覚えて使いたいならカラープロパティかRGBってとこか うーん前者かな
146 名前:デフォルトの名無しさん mailto:sage [2020/05/18(月) 20:31:02.10 ID:yqkonDmK.net] >>139 わかってない ColorプロパティにRGB関数やインデックスの値を代入するんだよ 基本的には両方使わないと色が変えられない
147 名前:デフォルトの名無しさん [2020/05/18(月) 20:37:00.50 ID:W41e55Iy.net] >>141 なるほどぜんぜんわかってなかった インデックス番号で数種類覚えちゃうか RGB関数でいくつかの組み合わせ覚えちゃうか 何やろうにしても何種類かやり方があって初心者にきついわ
148 名前:デフォルトの名無しさん mailto:sage [2020/05/18(月) 20:57:41 ID:ZYPN6nu1.net] >>142 インデックス色はカラーパレットの位置に設定してある色だから環境によっては色が変わるよ
149 名前:デフォルトの名無しさん [2020/05/18(月) 21:11:42.05 ID:W41e55Iy.net] ほんと勉強になりますわ 最初は0と255の組み合わせだけでRGB関数で覚えちゃうようにしますわ この8種類くらいしか多分使わないかな
150 名前:デフォルトの名無しさん mailto:sage [2020/05/18(月) 22:21:45 ID:MHLvuQaE.net] どういう時どれを使うのが適しているかで選ぶのであって、どっちで覚えるとかじゃない
151 名前:デフォルトの名無しさん mailto:sage [2020/05/18(月) 22:29:22.00 ID:1EfbZi6v.net] >>145 社内のマクロツールの中味たまに見るけどなんとなく、どっちかに統一してるって感じの人が多くない?
152 名前:デフォルトの名無しさん mailto:sage [2020/05/18(月) 22:32:29.74 ID:MHLvuQaE.net] どっちでもいいんであれば好きに統一すればいいんじゃね
153 名前:デフォルトの名無しさん [2020/05/18(月) 22:39:17.66 ID:W41e55Iy.net] たかが色だと思って使わないと思ってたけど メッセージボックスで黄色い部分の数値を確認後、入力とかで その範囲を真っ黄色にしてやって元に戻したり 他人、(おばちゃん)とかにはとにかくわかりやすく作るようにしてみることにした
154 名前:デフォルトの名無しさん mailto:sage [2020/05/19(火) 05:32:55.42 ID:MuDspthZ.net] rgb値の組み合わせを覚えるのは大変なのでWebColor名で覚えるといいかも。 rgbAliceBlue rgbLightBlue rgbBlue rgbMidnightBlue みたいな感じで記述すればrgb値を指定できる。よく使うやつだけ覚えとけばいい。
155 名前:デフォルトの名無しさん mailto:sage [2020/05/19(火) 07:27:37.05 ID:oLWOmWCd.net] vbRed 「・・・。」 vbGreen 「・・・。」 vbBlue 「・・・。」
156 名前:デフォルトの名無しさん mailto:sage [2020/05/19(火) 07:31:04 ID:FCPlMZOp.net] >「・・・。」 あーウゼー
157 名前:デフォルトの名無しさん mailto:sage [2020/05/19(火) 08:30:30.69 ID:D2gK0p2V.net] あーおれも、基本はそのvb〜だ グラデーション的な見栄えが必要の時とかは変えるけど
158 名前:デフォルトの名無しさん [2020/05/19(火) 17:47:57 ID:J9ZEMPxu.net] アクティブシートをコピーした後のコードがムズいなぁ 細かい所をいじる知識がなさすぎ
159 名前:デフォルトの名無しさん mailto:sage [2020/05/19(火) 18:07:59 ID:uEHEf6fZ.net] 逆に原紙を作っておいて普段はそのコピーを使うようにするといい
160 名前:デフォルトの名無しさん [2020/05/19(火) 18:17:23 ID:J9ZEMPxu.net] >>154 ありがとう。そ
161 名前:の方が都合そうしたよ。 シート名の取得も特定のセルから何とかできた。あとはブック名を指示したいんだけど調べりゃすぐ出てきそうだけどなかなか出て来ないわ エラー出ないように細かく作りたいもんだけ [] [ここ壊れてます]
162 名前:デフォルトの名無しさん mailto:sage [2020/05/19(火) 19:19:11 ID:qQEEjoZO.net] 10万円給付の紐付けなんかVBAで余裕に出来るのに話題にならないのが不思議
163 名前:デフォルトの名無しさん [2020/05/19(火) 19:48:13 ID:NEFcECdd.net] >>156 こういう馬鹿が職場にいて余計混乱させているだけだろ
164 名前:デフォルトの名無しさん mailto:sage [2020/05/19(火) 20:27:14.48 ID:F1sOO54s.net] そのうち消えた10万円とかなるんじゃね
165 名前:デフォルトの名無しさん mailto:sage [2020/05/19(火) 20:56:41 ID:FccdSYLU.net] クルーズ船の消えた弁当
166 名前:デフォルトの名無しさん [2020/05/19(火) 21:22:42.73 ID:oItI0x3V.net] 絶対にわからん関数ばかり使ってる理解不明なコードをネットからパクって少し弄ったら完全に業務で対応できてラッキー そこから今日もユーザーフォーム適当に作ってメッセージボックスとインプットボックスを組んでいって 効率化したけど相変わらず上達せん毎日だわ
167 名前:デフォルトの名無しさん mailto:sage [2020/05/19(火) 21:40:57 ID:OdQysc5C.net] ここは日記帳ではない
168 名前:デフォルトの名無しさん mailto:sage [2020/05/19(火) 22:33:25.66 ID:flKz052u.net] >>156 1億2000万件のデータを、誤読無く、重複無く、生死の年月日まで 勘案して処理する自治体まで勘案してエクセルに食わせろとな?
169 名前:デフォルトの名無しさん mailto:sage [2020/05/19(火) 23:58:06 ID:dbsigt0d.net] 相談させてください。 羅列されたデータにオートフィルタをかけて、その中でのランダム選択をシートを使わないでやる方法が知りたいです。 A列(1〜6年)、B列(1〜8組)、C列(名前) みたいな感じで、AとBから複数選択後にCから選び出す感じです。 今までは作業用のシートを設けてオートフィルタをかけたものを別シートにコピーし、その中でrandomで選んでいました。 諸事情により作業用シートが作れないので、おそらく配列内だとは思うのですが・・・・
170 名前:デフォルトの名無しさん mailto:sage [2020/05/20(水) 00:07:04 ID:vp7gkhOL.net] >>163 VBAなら、とりあえず乱数を発生して、その行がオートフィルタかかってたらもう一度乱数からやり直せばいいだけ
171 名前:デフォルトの名無しさん mailto:sage [2020/05/20(水) 01:09:15.99 ID:0kv4kFzW.net] 俺なら配列に入れてからやる
172 名前:デフォルトの名無しさん mailto:sage [2020/05/20(水) 02:23:38.33 ID:p47zFM4b.net] >>163 フィルタ掛けた結果をROWだけ配列に抜き出して、乱数で配列の中から一つ選べばいいんじゃね
173 名前:163 [2020/05/20(水) 06:43:20.78 ID:98prku9b.net] >>166 早速ありがとうございます そのままだとフィルターかけられたROWも選ばれません? オートフィルターかけた配列を一旦コピーすればいいのでしょうか?
174 名前:デフォルトの名無しさん mailto:sage [2020/05/20(水) 07:03:34.54 ID:skRckF1R.net] ランダム選択が目的なら、そもそも、オートフィルターにこだわる必要あるのかな? VBA使うなら、オートフィルターを扱うのは微妙に面倒だから、自前でフィルターすればいいと思うぞ
175 名前:デフォルトの名無しさん mailto:sage [2020/05/20(水) 08:27:34.61 ID: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 名前:デフォルトの名無しさん mailto:sage [2020/05/20(水) 08:28:13.58 ID:DAK+DifG.net] 一度きりってのは1人選ぶのに一度ってことでしゅ
178 名前:デフォルトの名無しさん mailto:sage [2020/05/20(水) 08:30:51.03 ID:DAK+DifG.net] 6学年あって6組の学年があったりするとだめか 階層が下がるごとに乱数生成してもいいのかね
179 名前:デフォルトの名無しさん mailto:sage [2020/05/20(水) 09:26:22 ID:CH9LsvxQ.net] 何年何組は決めておいてから誰にするかを乱数?
180 名前:デフォルトの名無しさん mailto:sage [2020/05/20(水) 09:45:48.33 ID:B3VzH1xh.net] A1からオートフィルターをかけて もし、変数aが空欄でなければ、B列で変数aと同じ値だけにしぼる もし、変数bが空欄でなければ、C列で変数bと同じ値だけにしぼる もし、変数cが空欄でなければ、D列で変数cと同じ値だけにしぼる というような書き方をおしえてください
181 名前:デフォルトの名無しさん mailto:sage [2020/05/20(水) 11:11:47 ID: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 名前:デフォルトの名無しさん mailto:sage [2020/05/20(水) 11:23:14.33 ID:qcti6JCq.net] >>173 まず意味が不明 →「変数aが空欄」 よくわかんないけど、 特定の表について、 VBA上で宣言した変数ごとに対応した列をフィルタする簡単なものなら書いてみた。 「空欄」の意味が不明なので、NULLか空文字か、それともセルのことだったのか、 そういうことも質問時に気にするように。 https://i.imgur.com/wNuWmnl.png
183 名前:173 mailto:sage [2020/05/20(水) 12:02:23.38 ID:B3VzH1xh.net] >>175 ありがとうございますm(_ _)m
184 名前:デフォルトの名無しさん mailto:sage [2020/05/20(水) 15:56:33 ID:a9xbkMkn.net] 余談だがグループの中から1人をランダムで選ぶ場合、 同じことを繰り返すと同じ人が選ばれる可能性がでてくる それを無くしたい場合はシャッフルしてから順番に選ぶといい
185 名前:デフォルトの名無しさん [2020/05/20(水) 17:56:09 ID:IoSOKpcA.net] 何かをさせるときに一度リセットする的なアレですね。 プロージャくっつけて作ってる初心者だが何となくその感覚 スマホとPCのデータが両方消えて 前スレで乱数の発生教えてくれた人のコードが見れなくなったが、やべえ
186 名前:デフォルトの名無しさん mailto:sage [2020/05/20(水) 18:10:15.58 ID:bnGR2vkC.net] いや選ばれる人の立場になると、 俺前回やったのにまた俺?他の選ばれてない人はズルくね?みたいな
187 名前:デフォルトの名無しさん [2020/05/20(水) 22:38:53 ID: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 名前:デフォルトの名無しさん [2020/05/20(水) 23:01:
] [ここ壊れてます]
189 名前:11 ID:cJtMR3HM.net mailto: Sub 乱数発生させる() For 項目 = 1 To 20 '項目数を変更 列 = 項目 + 最小 = WorksheetFunction.Min(Cells(6, 列).Resize(30)) 最大 = WorksheetFunction.Max(Cells(6, 列).Resize(30)) 幅 = 最大 - 最小 For サンプル = 1 To 25 'サンプル数 行 = サンプル + 11 If Cells(行, 列) = "" Then Cells(行, 列).NumberFormatLocal = "0.000" Cells(行, 列) = Rnd() * 幅 + 最小 Cells(行, 列) = Round(Rnd() * 幅 + 最小, 3) End If Next Next End Sub 項目数を20に変えてC12セルから入力させたいんだけどWorksheetfunctionのとこの6と30も変えないとダメですかねこれ 乱数が狂うのかなぁ [] [ここ壊れてます]
190 名前:デフォルトの名無しさん [2020/05/20(水) 23:30:59 ID:c0Xo7Xk6.net] 自分で考えることもしない厚かましい馬鹿は消えろ
191 名前:デフォルトの名無しさん [2020/05/20(水) 23:45:16 ID: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 名前:デフォルトの名無しさん mailto:sage [2020/05/20(水) 23:49:11 ID:Khp9j2eL.net] 数千行〜数万行のデータが格納されてるシートで、 ある特定の範囲で最大文字数を取得するには 配列関数で{Max(Len(A1:A10))}とすれば良いですが(VBA上でEvaluateを用いて実装してます)、その最大文字数があるセルの場所(行番号)を特定する方法はありますか? 最大文字数のセルが複数ある場合はその全てのセルの行番号を取得したいです 最終的に、範囲内の最大文字数のセルの背景色を変えたいのが目的です
193 名前:デフォルトの名無しさん mailto:sage [2020/05/21(Thu) 00:19:06 ID:OWznaKXu.net] >>184 セルの文字数がその最大文字数と同じなら色変えるっていう条件付き書式を設定する
194 名前:デフォルトの名無しさん mailto:sage [2020/05/21(Thu) 00:48:50 ID:V79mjqtT.net] >>185 条件付き書式とは盲点でした。 トライしてみます。ありがとう!
195 名前:デフォルトの名無しさん [2020/05/21(木) 01:01:13.95 ID:eV6pHfb6.net] わかった。 けどもう後には引けんほど次元の高い事やらせてて手に負えないわ
196 名前:デフォルトの名無しさん mailto:sage [2020/05/21(木) 03:10:09.62 ID:u8xoMicA.net] 気づくの遅すぎ
197 名前:デフォルトの名無しさん mailto:sage [2020/05/21(Thu) 06:58:06 ID:Qgph+4Ei.net] フォームのラベルに計算結果を表示について。 結果がプラスならそのまま、マイナスなら赤字にマイナス記号を付けるにはどうしたらいいですか? 例 350 -350←赤字
198 名前:デフォルトの名無しさん mailto:sage [2020/05/21(木) 07:11:40.31 ID:uDeLtUtB.net] >>183 セル範囲の内容で乱数の範囲が設定されているからデータが入力されていないと乱数にならないのに、 そこにデータが入力されていると値が更新されない なかなかのジレンマだね 余談だけど、直感的にわかりにくいから、ループカウンタは列と行そのものにした方がいいと思うぞ あと、項目数と基準セルを変えたいなら、それを変数にして、こんな感じ 項目数 = 20 サンプル数 = 25 行0 = Range("C12").Row 列0 = Range("C12").Column For 列 = 列0 To 列0 + 項目数 - 1 ...以降も上記変数で置き換える