ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part65
https://mevius.5ch.net/test/read.cgi/tech/1584430040/
※デフォルト設定
探検
Excel VBA 質問スレ Part66
■ このスレッドは過去ログ倉庫に格納されています
11000
2020/05/10(日) 13:43:45.00ID:Nkoph0aj127デフォルトの名無しさん
2020/05/17(日) 15:10:42.19ID:IJ/C56sM128デフォルトの名無しさん
2020/05/17(日) 16:08:33.48ID:Rv0pB+iF インストロールと言ったら怒られたナリみたいなもんか。
129デフォルトの名無しさん
2020/05/17(日) 16:57:48.19ID:lqCZHYYc 奇天烈大百科が巻物だったら、まさしくインストロールだぞ
130デフォルトの名無しさん
2020/05/17(日) 17:38:29.95ID:Rv0pB+iF 奇天烈大百科が巻物だったら、まさしくインストロールだぞ
↓
If the eccentric encyclopedia is a scroll, it's just an installation.
↓
風変わりな百科事典が巻物なら、それは単なるインスタレーションです。
意味がさっぱり分からなかったので、Google翻訳かけてみたら、意味が分かるようになったぞ。
↓
If the eccentric encyclopedia is a scroll, it's just an installation.
↓
風変わりな百科事典が巻物なら、それは単なるインスタレーションです。
意味がさっぱり分からなかったので、Google翻訳かけてみたら、意味が分かるようになったぞ。
131デフォルトの名無しさん
2020/05/17(日) 18:09:25.04ID:/J9Aoh2W 英語の方が簡単なんだよ
早くそれに気づけ
早くそれに気づけ
132デフォルトの名無しさん
2020/05/17(日) 21:52:01.62ID:FPkLjraN textboxの値チェックがうまく行きません。20~100までの範囲を入れたいのでchangeイベントで値がこの範囲か監視してます。
100を超えていたら100に、20を下回ると20になる様にリミッタを付けました。
すると100にした後にキーボード操作で30にしようとすると、0を消した時点で強制的に20になり、そこから何か押すと100になってしまいます。
どうすれば上手くいくのでしょうか。
100を超えていたら100に、20を下回ると20になる様にリミッタを付けました。
すると100にした後にキーボード操作で30にしようとすると、0を消した時点で強制的に20になり、そこから何か押すと100になってしまいます。
どうすれば上手くいくのでしょうか。
133デフォルトの名無しさん
2020/05/17(日) 22:01:56.66ID:GAbG2JNM >>132
そういう時はスピンボタンを使った方がいいよ
そういう時はスピンボタンを使った方がいいよ
134デフォルトの名無しさん
2020/05/17(日) 22:08:25.62ID:dvSHUyYR 馬鹿はWindowsのUIもわからず自分勝手なインターフェースを作る法則
135デフォルトの名無しさん
2020/05/17(日) 23:08:18.21ID:eOQVNdAF >>132
Exitイベントを使う
Exitイベントを使う
136デフォルトの名無しさん
2020/05/17(日) 23:21:22.78ID:vwApF1ba 大学で学ぶ物理を板書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
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
137デフォルトの名無しさん
2020/05/17(日) 23:30:26.45ID:oJIHh9Jk138デフォルトの名無しさん
2020/05/17(日) 23:46:16.64ID:FPkLjraN139デフォルトの名無しさん
2020/05/18(月) 20:11:09.72ID:W41e55Iy ちょっと息抜きにセルや文字の色をVBAでやろうと思ったら大きく二通りあるんだね
カラープロパティとRGB関数
どっちで覚えるのが王道?
カラープロパティとRGB関数
どっちで覚えるのが王道?
140デフォルトの名無しさん
2020/05/18(月) 20:20:02.29ID:W41e55Iy いや違うか
そんなに普段カラフルに使わないならカラーインデックス
細かく覚えて使いたいならカラープロパティかRGBってとこか
うーん前者かな
そんなに普段カラフルに使わないならカラーインデックス
細かく覚えて使いたいならカラープロパティかRGBってとこか
うーん前者かな
141デフォルトの名無しさん
2020/05/18(月) 20:31:02.10ID:yqkonDmK142デフォルトの名無しさん
2020/05/18(月) 20:37:00.50ID:W41e55Iy143デフォルトの名無しさん
2020/05/18(月) 20:57:41.87ID:ZYPN6nu1 >>142
インデックス色はカラーパレットの位置に設定してある色だから環境によっては色が変わるよ
インデックス色はカラーパレットの位置に設定してある色だから環境によっては色が変わるよ
144デフォルトの名無しさん
2020/05/18(月) 21:11:42.05ID:W41e55Iy ほんと勉強になりますわ
最初は0と255の組み合わせだけでRGB関数で覚えちゃうようにしますわ
この8種類くらいしか多分使わないかな
最初は0と255の組み合わせだけでRGB関数で覚えちゃうようにしますわ
この8種類くらいしか多分使わないかな
145デフォルトの名無しさん
2020/05/18(月) 22:21:45.09ID:MHLvuQaE どういう時どれを使うのが適しているかで選ぶのであって、どっちで覚えるとかじゃない
146デフォルトの名無しさん
2020/05/18(月) 22:29:22.00ID:1EfbZi6v >>145
社内のマクロツールの中味たまに見るけどなんとなく、どっちかに統一してるって感じの人が多くない?
社内のマクロツールの中味たまに見るけどなんとなく、どっちかに統一してるって感じの人が多くない?
147デフォルトの名無しさん
2020/05/18(月) 22:32:29.74ID:MHLvuQaE どっちでもいいんであれば好きに統一すればいいんじゃね
148デフォルトの名無しさん
2020/05/18(月) 22:39:17.66ID:W41e55Iy たかが色だと思って使わないと思ってたけど
メッセージボックスで黄色い部分の数値を確認後、入力とかで
その範囲を真っ黄色にしてやって元に戻したり
他人、(おばちゃん)とかにはとにかくわかりやすく作るようにしてみることにした
メッセージボックスで黄色い部分の数値を確認後、入力とかで
その範囲を真っ黄色にしてやって元に戻したり
他人、(おばちゃん)とかにはとにかくわかりやすく作るようにしてみることにした
149デフォルトの名無しさん
2020/05/19(火) 05:32:55.42ID:MuDspthZ rgb値の組み合わせを覚えるのは大変なのでWebColor名で覚えるといいかも。
rgbAliceBlue
rgbLightBlue
rgbBlue
rgbMidnightBlue
みたいな感じで記述すればrgb値を指定できる。よく使うやつだけ覚えとけばいい。
rgbAliceBlue
rgbLightBlue
rgbBlue
rgbMidnightBlue
みたいな感じで記述すればrgb値を指定できる。よく使うやつだけ覚えとけばいい。
150デフォルトの名無しさん
2020/05/19(火) 07:27:37.05ID:oLWOmWCd vbRed 「・・・。」
vbGreen 「・・・。」
vbBlue 「・・・。」
vbGreen 「・・・。」
vbBlue 「・・・。」
151デフォルトの名無しさん
2020/05/19(火) 07:31:04.28ID:FCPlMZOp >「・・・。」
あーウゼー
あーウゼー
152デフォルトの名無しさん
2020/05/19(火) 08:30:30.69ID:D2gK0p2V あーおれも、基本はそのvb〜だ
グラデーション的な見栄えが必要の時とかは変えるけど
グラデーション的な見栄えが必要の時とかは変えるけど
153デフォルトの名無しさん
2020/05/19(火) 17:47:57.55ID:J9ZEMPxu アクティブシートをコピーした後のコードがムズいなぁ
細かい所をいじる知識がなさすぎ
細かい所をいじる知識がなさすぎ
154デフォルトの名無しさん
2020/05/19(火) 18:07:59.71ID:uEHEf6fZ 逆に原紙を作っておいて普段はそのコピーを使うようにするといい
155デフォルトの名無しさん
2020/05/19(火) 18:17:23.12ID:J9ZEMPxu >>154
ありがとう。その方が都合そうしたよ。
シート名の取得も特定のセルから何とかできた。あとはブック名を指示したいんだけど調べりゃすぐ出てきそうだけどなかなか出て来ないわ
エラー出ないように細かく作りたいもんだけ
ありがとう。その方が都合そうしたよ。
シート名の取得も特定のセルから何とかできた。あとはブック名を指示したいんだけど調べりゃすぐ出てきそうだけどなかなか出て来ないわ
エラー出ないように細かく作りたいもんだけ
156デフォルトの名無しさん
2020/05/19(火) 19:19:11.33ID:qQEEjoZO 10万円給付の紐付けなんかVBAで余裕に出来るのに話題にならないのが不思議
157デフォルトの名無しさん
2020/05/19(火) 19:48:13.64ID:NEFcECdd >>156
こういう馬鹿が職場にいて余計混乱させているだけだろ
こういう馬鹿が職場にいて余計混乱させているだけだろ
158デフォルトの名無しさん
2020/05/19(火) 20:27:14.48ID:F1sOO54s そのうち消えた10万円とかなるんじゃね
159デフォルトの名無しさん
2020/05/19(火) 20:56:41.62ID:FccdSYLU クルーズ船の消えた弁当
160デフォルトの名無しさん
2020/05/19(火) 21:22:42.73ID:oItI0x3V 絶対にわからん関数ばかり使ってる理解不明なコードをネットからパクって少し弄ったら完全に業務で対応できてラッキー
そこから今日もユーザーフォーム適当に作ってメッセージボックスとインプットボックスを組んでいって
効率化したけど相変わらず上達せん毎日だわ
そこから今日もユーザーフォーム適当に作ってメッセージボックスとインプットボックスを組んでいって
効率化したけど相変わらず上達せん毎日だわ
161デフォルトの名無しさん
2020/05/19(火) 21:40:57.51ID:OdQysc5C ここは日記帳ではない
162デフォルトの名無しさん
2020/05/19(火) 22:33:25.66ID:flKz052u163デフォルトの名無しさん
2020/05/19(火) 23:58:06.20ID:dbsigt0d 相談させてください。
羅列されたデータにオートフィルタをかけて、その中でのランダム選択をシートを使わないでやる方法が知りたいです。
A列(1〜6年)、B列(1〜8組)、C列(名前)
みたいな感じで、AとBから複数選択後にCから選び出す感じです。
今までは作業用のシートを設けてオートフィルタをかけたものを別シートにコピーし、その中でrandomで選んでいました。
諸事情により作業用シートが作れないので、おそらく配列内だとは思うのですが・・・・
羅列されたデータにオートフィルタをかけて、その中でのランダム選択をシートを使わないでやる方法が知りたいです。
A列(1〜6年)、B列(1〜8組)、C列(名前)
みたいな感じで、AとBから複数選択後にCから選び出す感じです。
今までは作業用のシートを設けてオートフィルタをかけたものを別シートにコピーし、その中でrandomで選んでいました。
諸事情により作業用シートが作れないので、おそらく配列内だとは思うのですが・・・・
164デフォルトの名無しさん
2020/05/20(水) 00:07:04.62ID:vp7gkhOL >>163
VBAなら、とりあえず乱数を発生して、その行がオートフィルタかかってたらもう一度乱数からやり直せばいいだけ
VBAなら、とりあえず乱数を発生して、その行がオートフィルタかかってたらもう一度乱数からやり直せばいいだけ
165デフォルトの名無しさん
2020/05/20(水) 01:09:15.99ID:0kv4kFzW 俺なら配列に入れてからやる
166デフォルトの名無しさん
2020/05/20(水) 02:23:38.33ID:p47zFM4b >>163
フィルタ掛けた結果をROWだけ配列に抜き出して、乱数で配列の中から一つ選べばいいんじゃね
フィルタ掛けた結果をROWだけ配列に抜き出して、乱数で配列の中から一つ選べばいいんじゃね
167163
2020/05/20(水) 06:43:20.78ID:98prku9b168デフォルトの名無しさん
2020/05/20(水) 07:03:34.54ID:skRckF1R ランダム選択が目的なら、そもそも、オートフィルターにこだわる必要あるのかな?
VBA使うなら、オートフィルターを扱うのは微妙に面倒だから、自前でフィルターすればいいと思うぞ
VBA使うなら、オートフィルターを扱うのは微妙に面倒だから、自前でフィルターすればいいと思うぞ
169デフォルトの名無しさん
2020/05/20(水) 08:27:34.61ID:DAK+DifG オートフィルタやオートフィルタ的コードは使わない
VBAのみで
乱数生成は一度きり
3桁の乱数 a を生成する
まず a を6で割って余りが0〜5まででるんで
0が出たら6年
1が出たら1年
2が出たら2年
3が出たら3年
4が出たら4年
5が出たら5年
とする
例えばここで2が出て2年が選択されたら
さっきの乱数 a をまた使って、組数で割って余りを求める
んで同じようにして
今度は選択された組の人数で割って個人に割り当てられた番号でを特定する
これを繰り返して複数人を選んでいく
選ぶ過程で同じ学年はダメとかあるなら
上の例で言えば一旦2が出たら次は2を排除するとか
繰り返し文の中で if 使って条件つけていく
学年の数、組の数、クラス人数は予めシートに表にしておくこと
とかとか
VBAのみで
乱数生成は一度きり
3桁の乱数 a を生成する
まず a を6で割って余りが0〜5まででるんで
0が出たら6年
1が出たら1年
2が出たら2年
3が出たら3年
4が出たら4年
5が出たら5年
とする
例えばここで2が出て2年が選択されたら
さっきの乱数 a をまた使って、組数で割って余りを求める
んで同じようにして
今度は選択された組の人数で割って個人に割り当てられた番号でを特定する
これを繰り返して複数人を選んでいく
選ぶ過程で同じ学年はダメとかあるなら
上の例で言えば一旦2が出たら次は2を排除するとか
繰り返し文の中で if 使って条件つけていく
学年の数、組の数、クラス人数は予めシートに表にしておくこと
とかとか
170デフォルトの名無しさん
2020/05/20(水) 08:28:13.58ID:DAK+DifG 一度きりってのは1人選ぶのに一度ってことでしゅ
171デフォルトの名無しさん
2020/05/20(水) 08:30:51.03ID:DAK+DifG 6学年あって6組の学年があったりするとだめか
階層が下がるごとに乱数生成してもいいのかね
階層が下がるごとに乱数生成してもいいのかね
172デフォルトの名無しさん
2020/05/20(水) 09:26:22.31ID:CH9LsvxQ 何年何組は決めておいてから誰にするかを乱数?
173デフォルトの名無しさん
2020/05/20(水) 09:45:48.33ID:B3VzH1xh A1からオートフィルターをかけて
もし、変数aが空欄でなければ、B列で変数aと同じ値だけにしぼる
もし、変数bが空欄でなければ、C列で変数bと同じ値だけにしぼる
もし、変数cが空欄でなければ、D列で変数cと同じ値だけにしぼる
というような書き方をおしえてください
もし、変数aが空欄でなければ、B列で変数aと同じ値だけにしぼる
もし、変数bが空欄でなければ、C列で変数bと同じ値だけにしぼる
もし、変数cが空欄でなければ、D列で変数cと同じ値だけにしぼる
というような書き方をおしえてください
174デフォルトの名無しさん
2020/05/20(水) 11:11:47.07ID:nPhD6zxk >>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
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
175デフォルトの名無しさん
2020/05/20(水) 11:23:14.33ID:qcti6JCq >>173
まず意味が不明 →「変数aが空欄」
よくわかんないけど、
特定の表について、
VBA上で宣言した変数ごとに対応した列をフィルタする簡単なものなら書いてみた。
「空欄」の意味が不明なので、NULLか空文字か、それともセルのことだったのか、
そういうことも質問時に気にするように。
https://i.imgur.com/wNuWmnl.png
まず意味が不明 →「変数aが空欄」
よくわかんないけど、
特定の表について、
VBA上で宣言した変数ごとに対応した列をフィルタする簡単なものなら書いてみた。
「空欄」の意味が不明なので、NULLか空文字か、それともセルのことだったのか、
そういうことも質問時に気にするように。
https://i.imgur.com/wNuWmnl.png
177デフォルトの名無しさん
2020/05/20(水) 15:56:33.77ID:a9xbkMkn 余談だがグループの中から1人をランダムで選ぶ場合、
同じことを繰り返すと同じ人が選ばれる可能性がでてくる
それを無くしたい場合はシャッフルしてから順番に選ぶといい
同じことを繰り返すと同じ人が選ばれる可能性がでてくる
それを無くしたい場合はシャッフルしてから順番に選ぶといい
178デフォルトの名無しさん
2020/05/20(水) 17:56:09.89ID:IoSOKpcA 何かをさせるときに一度リセットする的なアレですね。
プロージャくっつけて作ってる初心者だが何となくその感覚
スマホとPCのデータが両方消えて
前スレで乱数の発生教えてくれた人のコードが見れなくなったが、やべえ
プロージャくっつけて作ってる初心者だが何となくその感覚
スマホとPCのデータが両方消えて
前スレで乱数の発生教えてくれた人のコードが見れなくなったが、やべえ
179デフォルトの名無しさん
2020/05/20(水) 18:10:15.58ID:bnGR2vkC いや選ばれる人の立場になると、
俺前回やったのにまた俺?他の選ばれてない人はズルくね?みたいな
俺前回やったのにまた俺?他の選ばれてない人はズルくね?みたいな
180デフォルトの名無しさん
2020/05/20(水) 22:38:53.36ID:cJtMR3HM 前スレの教えてくれた恩人のコードやっと見つけたあああああ
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からとかに変えるにはどこ弄ればいいですか?
誰かコメントをこれに添えてもらえませんか…
前スレの大恩人に救われたコードを更に流用したいです
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からとかに変えるにはどこ弄ればいいですか?
誰かコメントをこれに添えてもらえませんか…
前スレの大恩人に救われたコードを更に流用したいです
181デフォルトの名無しさん
2020/05/20(水) 23:01:11.08ID:cJtMR3HM 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も変えないとダメですかねこれ
乱数が狂うのかなぁ
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も変えないとダメですかねこれ
乱数が狂うのかなぁ
182デフォルトの名無しさん
2020/05/20(水) 23:30:59.51ID:c0Xo7Xk6 自分で考えることもしない厚かましい馬鹿は消えろ
183デフォルトの名無しさん
2020/05/20(水) 23:45:16.86ID:cJtMR3HM 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
考えたけどこれかなぁ
他ののまっさらなシートだと乱数再現できた
けど反映させたいシートだと乱数が狂う
配置も数値も同じなのに
シートの設定かぁ
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
考えたけどこれかなぁ
他ののまっさらなシートだと乱数再現できた
けど反映させたいシートだと乱数が狂う
配置も数値も同じなのに
シートの設定かぁ
184デフォルトの名無しさん
2020/05/20(水) 23:49:11.96ID:Khp9j2eL 数千行〜数万行のデータが格納されてるシートで、
ある特定の範囲で最大文字数を取得するには
配列関数で{Max(Len(A1:A10))}とすれば良いですが(VBA上でEvaluateを用いて実装してます)、その最大文字数があるセルの場所(行番号)を特定する方法はありますか?
最大文字数のセルが複数ある場合はその全てのセルの行番号を取得したいです
最終的に、範囲内の最大文字数のセルの背景色を変えたいのが目的です
ある特定の範囲で最大文字数を取得するには
配列関数で{Max(Len(A1:A10))}とすれば良いですが(VBA上でEvaluateを用いて実装してます)、その最大文字数があるセルの場所(行番号)を特定する方法はありますか?
最大文字数のセルが複数ある場合はその全てのセルの行番号を取得したいです
最終的に、範囲内の最大文字数のセルの背景色を変えたいのが目的です
185デフォルトの名無しさん
2020/05/21(木) 00:19:06.01ID:OWznaKXu >>184
セルの文字数がその最大文字数と同じなら色変えるっていう条件付き書式を設定する
セルの文字数がその最大文字数と同じなら色変えるっていう条件付き書式を設定する
186デフォルトの名無しさん
2020/05/21(木) 00:48:50.73ID:V79mjqtT187デフォルトの名無しさん
2020/05/21(木) 01:01:13.95ID:eV6pHfb6 わかった。
けどもう後には引けんほど次元の高い事やらせてて手に負えないわ
けどもう後には引けんほど次元の高い事やらせてて手に負えないわ
188デフォルトの名無しさん
2020/05/21(木) 03:10:09.62ID:u8xoMicA 気づくの遅すぎ
189デフォルトの名無しさん
2020/05/21(木) 06:58:06.98ID:Qgph+4Ei フォームのラベルに計算結果を表示について。
結果がプラスならそのまま、マイナスなら赤字にマイナス記号を付けるにはどうしたらいいですか?
例
350
-350←赤字
結果がプラスならそのまま、マイナスなら赤字にマイナス記号を付けるにはどうしたらいいですか?
例
350
-350←赤字
190デフォルトの名無しさん
2020/05/21(木) 07:11:40.31ID:uDeLtUtB >>183
セル範囲の内容で乱数の範囲が設定されているからデータが入力されていないと乱数にならないのに、
そこにデータが入力されていると値が更新されない
なかなかのジレンマだね
余談だけど、直感的にわかりにくいから、ループカウンタは列と行そのものにした方がいいと思うぞ
あと、項目数と基準セルを変えたいなら、それを変数にして、こんな感じ
項目数 = 20
サンプル数 = 25
行0 = Range("C12").Row
列0 = Range("C12").Column
For 列 = 列0 To 列0 + 項目数 - 1
...以降も上記変数で置き換える
セル範囲の内容で乱数の範囲が設定されているからデータが入力されていないと乱数にならないのに、
そこにデータが入力されていると値が更新されない
なかなかのジレンマだね
余談だけど、直感的にわかりにくいから、ループカウンタは列と行そのものにした方がいいと思うぞ
あと、項目数と基準セルを変えたいなら、それを変数にして、こんな感じ
項目数 = 20
サンプル数 = 25
行0 = Range("C12").Row
列0 = Range("C12").Column
For 列 = 列0 To 列0 + 項目数 - 1
...以降も上記変数で置き換える
191デフォルトの名無しさん
2020/05/21(木) 08:07:12.30ID:Sgq4UdRX192デフォルトの名無しさん
2020/05/21(木) 12:39:59.39ID:VB42BHka >>190
それとこのコード見てさらっとそうやって理解できるってやっぱすごいね
仰るとおり今記入してある数値はそのまま
で残りその数値を元に乱数で埋めるというのを
前スレの人が教えてくれた
みんな凄いの一言
それとこのコード見てさらっとそうやって理解できるってやっぱすごいね
仰るとおり今記入してある数値はそのまま
で残りその数値を元に乱数で埋めるというのを
前スレの人が教えてくれた
みんな凄いの一言
193デフォルトの名無しさん
2020/05/21(木) 12:46:28.85ID:/CAIZx5s 日本語よりはるかに簡単
194デフォルトの名無しさん
2020/05/21(木) 18:17:58.90ID:uS9Lfycl パワークエリでデータモデルに読み込んだ後ファイル移動等して元ファイルを参照できない状態からデータをシートに書き出したいのですがvbaで出来ますか?
手動では既存の接続からテーブルとして書き出せるのですがマクロ化するとクエリの更新処理でパスが見つかりませんというエラーになります
手動では既存の接続からテーブルとして書き出せるのですがマクロ化するとクエリの更新処理でパスが見つかりませんというエラーになります
195デフォルトの名無しさん
2020/05/21(木) 20:15:46.18ID:2OHs6iV3 >>189
その文章そのまんま単純に処理に起こすだけでいけるだろう
その文章そのまんま単純に処理に起こすだけでいけるだろう
196デフォルトの名無しさん
2020/05/21(木) 20:23:35.62ID:L96ERFQO >>194
読込時にテーブルデータを別シートにコピーするようにしとけば?
読込時にテーブルデータを別シートにコピーするようにしとけば?
197デフォルトの名無しさん
2020/05/21(木) 21:28:40.44ID:1bkcSVS7 >>194
Excel.Currentworkbookで、テーブルの値をパスとして読み込むようにしておいて、ファイル移動したらVBAでそのテーブルの値を書き換えるようにする
Excel.Currentworkbookで、テーブルの値をパスとして読み込むようにしておいて、ファイル移動したらVBAでそのテーブルの値を書き換えるようにする
198デフォルトの名無しさん
2020/05/21(木) 22:27:29.78ID:eV6pHfb6 銀行まるめ型だっけ
仕事で四捨五入多用する俺はあの機能がうざすぎる
Format関数使ってるけど素直にRound関数はエクセルと同じ機能にしろよマジで
仕事で四捨五入多用する俺はあの機能がうざすぎる
Format関数使ってるけど素直にRound関数はエクセルと同じ機能にしろよマジで
199デフォルトの名無しさん
2020/05/21(木) 23:25:30.93ID:uS9Lfycl200デフォルトの名無しさん
2020/05/21(木) 23:51:59.74ID:g1Bqd7P3 ある何かをやりたいときに骨子になるコードが完成するともうそこから手直しが楽しくて止まらないわ
201デフォルトの名無しさん
2020/05/22(金) 00:18:17.28ID:TbAUFCKp プロパティと引数の使い分けがいまいちわからん
クラス内の一つのプロシージャで利用する変数なら引数で渡してよいの?
クラス内の一つのプロシージャで利用する変数なら引数で渡してよいの?
202デフォルトの名無しさん
2020/05/22(金) 03:00:05.94ID:qVNfs0Gr 動けばいいんじゃね
203デフォルトの名無しさん
2020/05/22(金) 04:52:54.15ID:HmQhS1LZ プロパティ
とりあえず1個ずつセットしといて、処理の開始は後回しにできる
順番を意識しなくていい
引数
複数の変数を参照渡ししたい時、構造体やサブプロパティは微妙にめんどくさい
セット忘れが防げそう(願望
とりあえず1個ずつセットしといて、処理の開始は後回しにできる
順番を意識しなくていい
引数
複数の変数を参照渡ししたい時、構造体やサブプロパティは微妙にめんどくさい
セット忘れが防げそう(願望
204デフォルトの名無しさん
2020/05/22(金) 06:38:47.78ID:mpVA2e0J >>201
一応定義としては、プロパティはオブジェクトの設定や状態を見たり書いたりするものという事になってる
一度設定したら変えることが殆どない設定はプロパティ、
ちょくちょく変える設定は引数、
みたいな感じでいいと思う
一応定義としては、プロパティはオブジェクトの設定や状態を見たり書いたりするものという事になってる
一度設定したら変えることが殆どない設定はプロパティ、
ちょくちょく変える設定は引数、
みたいな感じでいいと思う
205デフォルトの名無しさん
2020/05/22(金) 07:33:08.57ID:TbAUFCKp206デフォルトの名無しさん
2020/05/22(金) 11:06:37.48ID:y/Lzet5S >>205
色々作ってるとそのうちなんとなくどっちにした方がいいかわかってくると思うよ
色々作ってるとそのうちなんとなくどっちにした方がいいかわかってくると思うよ
207デフォルトの名無しさん
2020/05/22(金) 13:23:07.02ID:DQGXczns 変数ってみんなどんな付け方してんの
My〜とかそういう変数付けたりしてるサイトもあれば色々だね
My〜とかそういう変数付けたりしてるサイトもあれば色々だね
208デフォルトの名無しさん
2020/05/22(金) 13:55:43.58ID:uqJ26gv2 日本語で
「わたしの〜」とかそういう変数名を付けたりしてる。
「わたしの〜」とかそういう変数名を付けたりしてる。
209デフォルトの名無しさん
2020/05/22(金) 18:08:02.11ID:FMkBDb3b 拙者も
210デフォルトの名無しさん
2020/05/22(金) 18:16:23.98ID:CsJitSv2 我(われ)
某(それがし)
拙(せつ)
朕(ちん)
某(それがし)
拙(せつ)
朕(ちん)
211デフォルトの名無しさん
2020/05/22(金) 21:51:59.64ID:Cbv5LLjj セルの数式中で条件成立時のみHYPERLINK関数を生成してるのですが、
@HYPERLINK関数が生成された事を確認
Aリンク切れが無いか確認
する事は可能でしょうか?
イメージは下記ですが、数式は複数のパターンがあり困っています
=if (A1<>"", HYPERLINK(A1&B1,B1),B1)
@HYPERLINK関数が生成された事を確認
Aリンク切れが無いか確認
する事は可能でしょうか?
イメージは下記ですが、数式は複数のパターンがあり困っています
=if (A1<>"", HYPERLINK(A1&B1,B1),B1)
212デフォルトの名無しさん
2020/05/22(金) 23:34:25.54ID:xc22QBUa 未だに二つのセルの掛け算を電卓で計算してて手入力する50歳のおじさんがいる職場なんだよな
213デフォルトの名無しさん
2020/05/23(土) 01:03:15.62ID:pi9ABoQN @HYPERLINK関数が生成された事を確認 -> 隣のセルに If (xxx, 1, 0) とかやっとけばいいんじゃないの
Aリンク切れが無いか確認 -> マクロでHTTPリクエストしてステータスコード見ないと駄目だろうね
Aリンク切れが無いか確認 -> マクロでHTTPリクエストしてステータスコード見ないと駄目だろうね
214デフォルトの名無しさん
2020/05/23(土) 04:02:16.01ID:TU97qQFp >>205
プロパティは根幹部分を触らせるメンテ用メソッド的な意味合いで用意するといいよ。
例えば「何かを〇倍にする」というメソッドを持つクラスがあったとして、
この「何か」部分が引数で、「〇倍」部分がプロパティ。
利用者はプロパティで「〇倍」を「二倍」等に変えて異なる機能を持つインスタンスを作る事が出来る。
もちろん予め二倍や三倍に設定済みのクラスを作ってもいいんだけど、
プロパティで変更出来るようにすれば一つのクラスで済むという利点がある。
インスタンス化してプロパティを変えたオブジェクトを返す関数(コンストラクタ関数)を作れば凄く便利だよ
プロパティは根幹部分を触らせるメンテ用メソッド的な意味合いで用意するといいよ。
例えば「何かを〇倍にする」というメソッドを持つクラスがあったとして、
この「何か」部分が引数で、「〇倍」部分がプロパティ。
利用者はプロパティで「〇倍」を「二倍」等に変えて異なる機能を持つインスタンスを作る事が出来る。
もちろん予め二倍や三倍に設定済みのクラスを作ってもいいんだけど、
プロパティで変更出来るようにすれば一つのクラスで済むという利点がある。
インスタンス化してプロパティを変えたオブジェクトを返す関数(コンストラクタ関数)を作れば凄く便利だよ
215デフォルトの名無しさん
2020/05/23(土) 04:04:50.94ID:TU97qQFp インスタンス化は new クラス名 でオブジェクトを作ることで、
インスタンスはその作成したオブジェクトのことね
インスタンスはその作成したオブジェクトのことね
216デフォルトの名無しさん
2020/05/23(土) 17:42:06.78ID:x2nf7i64 ExcelVBAでCSVファイルを2次元配列に格納しようと思い、そこまで作成はできました。
ここを参照しました:ttps://ateitexe.com/excel-vba-csv-to-multi-dimensional-array/
その配列に格納した後、特定の文字列がある行を削除しようと思うと、配列だとかなり手間だと感じました。
(文字列を検索、行を削除、詰める作業が必要)
だったら、そもそも配列に入れる前にそのcsvの行を無視しようと思うのですが、どうしてもうまくいきません。
どうしたらいいのでしょうか?
ここを参照しました:ttps://ateitexe.com/excel-vba-csv-to-multi-dimensional-array/
その配列に格納した後、特定の文字列がある行を削除しようと思うと、配列だとかなり手間だと感じました。
(文字列を検索、行を削除、詰める作業が必要)
だったら、そもそも配列に入れる前にそのcsvの行を無視しようと思うのですが、どうしてもうまくいきません。
どうしたらいいのでしょうか?
217デフォルトの名無しさん
2020/05/23(土) 17:46:18.03ID:105ldQbQ 文字列を検索、行を削除、詰める作業をお勧めします
218デフォルトの名無しさん
2020/05/23(土) 18:20:37.75ID:RvKaLrIF219デフォルトの名無しさん
2020/05/23(土) 18:40:31.27ID:0VGwJWuY220デフォルトの名無しさん
2020/05/23(土) 18:49:52.27ID:J+1ULzMv 特定の文字列がある行は空にすればええやん
それとも別に空の行も含まれてるんか
それとも別に空の行も含まれてるんか
221デフォルトの名無しさん
2020/05/23(土) 19:27:43.93ID:n1v+MUu8 >>216
そのどうしてもうまくいかない部分を書けよ…
そのどうしてもうまくいかない部分を書けよ…
222デフォルトの名無しさん
2020/05/23(土) 19:33:17.52ID:P5e4K719 例えば、Ruby で、入力ファイルが、
あ,いう
a,bc
1,23
require 'csv'
ary = [ ]
CSV.foreach( "input.csv" ) do |row| # 1行ずつ処理する
next if row[ 1 ] == "bc" # skip
ary.push row # 追加
end
p ary #=> [["あ", "いう"], ["1", "23"]]
あ,いう
a,bc
1,23
require 'csv'
ary = [ ]
CSV.foreach( "input.csv" ) do |row| # 1行ずつ処理する
next if row[ 1 ] == "bc" # skip
ary.push row # 追加
end
p ary #=> [["あ", "いう"], ["1", "23"]]
223デフォルトの名無しさん
2020/05/23(土) 20:02:14.42ID:FaM1nYaB 要素数を変えるような操作を配列にする場合、
VBAだと大抵は新しい配列を作るような処理にしたほうが楽
foreachで条件にあえば追加する、そんな感じ
VBAだと大抵は新しい配列を作るような処理にしたほうが楽
foreachで条件にあえば追加する、そんな感じ
224デフォルトの名無しさん
2020/05/23(土) 20:16:37.74ID:+RVUJGzG 配列に入れる前にそのcsvの行を無視しようという発想は正しいと思うぞ
Splitする前に文字列判定して、無かったときのみ n=n+1 まで実行するようにすればいけるはずだよ
それと、ary(n, i) = tmp(i) のところは要注意
csvの列数がRedimの行で設定した数分を越えると、配列の範囲外エラーが起きるので
Splitする前に文字列判定して、無かったときのみ n=n+1 まで実行するようにすればいけるはずだよ
それと、ary(n, i) = tmp(i) のところは要注意
csvの列数がRedimの行で設定した数分を越えると、配列の範囲外エラーが起きるので
225デフォルトの名無しさん
2020/05/23(土) 21:48:22.03ID:GhgCxwTJ B列の2行目から最終行に「2020/5/23」のような文字列が入力されているので
この文字列を「2020/5/23」に変換するコードを教えてください
この文字列を「2020/5/23」に変換するコードを教えてください
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★2 [蚤の市★]
- 米大統領報道官「日本と強固な同盟維持、中国とも協力」 [少考さん★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ ★2 [蚤の市★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 【テレビ】粗品「THE W」バッサリ「おもんない、レベル低い」審査員就任で「日テレが“血の海”に…」 [湛然★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- お前ら「冬のボーナス」なんぼだった?
- 【朗報】井端監督、侍ジャパンで岡本村上の一塁三塁構想を発表WWWWWWWWWWWWWWWWWWWWWWW
- 【悲報】維新の政治資金でガールズバー、高市首相「良いか悪いかは国民の皆さまが判断されること」 [115996789]
- 2025年 プレイステーションが11年連続でPornhubアクセス数No.1に輝く WWWWWWW WWWWWWW WWWWWWW WWWWWWW
- 中国人、ガチ超正論。「日本人がアイヌに対してやったことを『問題ない』とするなら、中国が日本人に同じことをしても文句ないだろう?」 [314039747]
- 【悲報】女性「スタバで癒やされに来たのに、小汚いおっさんがいたあ!!😭」 [769050516]
