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:Nkoph0aj2020/05/14(木) 23:40:56.55ID:gToX6xvs
>>80
いや、流石にこれじゃいかんわ情けないと自覚
標準モジュールにあるプロシージャが自作のコードならまだしもマクロの記録を無駄な動きだけ消して貼り付けたりネットのをパクって少しいじったりするだけ
ユーザーフォームもコマンドボタン以外に使い方わからず使ってないし
CSVやtxtを読み込んだりとかそういう特殊な事書ける人は凄いわ
若い頃から情報システムとかそういう勉強すればよかったわ
英語 資格 PCスキルの時代は変わらんね
いや、流石にこれじゃいかんわ情けないと自覚
標準モジュールにあるプロシージャが自作のコードならまだしもマクロの記録を無駄な動きだけ消して貼り付けたりネットのをパクって少しいじったりするだけ
ユーザーフォームもコマンドボタン以外に使い方わからず使ってないし
CSVやtxtを読み込んだりとかそういう特殊な事書ける人は凄いわ
若い頃から情報システムとかそういう勉強すればよかったわ
英語 資格 PCスキルの時代は変わらんね
2020/05/14(木) 23:50:14.00ID:I7glJUMv
>>76>>77
ポーリングしてる機器Aの状態に応じて機器B、Cに異なるコマンドを送ってデータを取得する様な処理が何通りか合って多くなってます。インターフェースクラスとの間に処理クラスみたいなのを入れるのでしょうか
ポーリングしてる機器Aの状態に応じて機器B、Cに異なるコマンドを送ってデータを取得する様な処理が何通りか合って多くなってます。インターフェースクラスとの間に処理クラスみたいなのを入れるのでしょうか
2020/05/15(金) 00:17:59.54ID:qMmlu16O
2020/05/15(金) 00:41:48.57ID:ZviQyBFQ
>>81
今はボタン使うマクロしか作る予定がないだけだと思うが。
csvを使うマクロが必要になった時に調べるだろうし、
今は知らないからって自虐的になる必要ないんでは?
>>82
一般的にオブジェクト指向は「最終的にやらせたいこと(=やれること)」をメソッドとしてクラスに定義にして、
そのための条件や必要なデータなどはクラス自体が判断したり取得したりするか、引数として与える
もし、Getter等でデータをメインルーチンに集めて統合的に処理するなら従来の手続き型になる
今回の例で言えば、
機器BCからから受け取ったデータを処理するPublicメソッドを定義したクラスを作って
機器Aに応じて機器BCにコマンドを送ったりっていった処理は、そのクラス内でやるのがいいかも
今はボタン使うマクロしか作る予定がないだけだと思うが。
csvを使うマクロが必要になった時に調べるだろうし、
今は知らないからって自虐的になる必要ないんでは?
>>82
一般的にオブジェクト指向は「最終的にやらせたいこと(=やれること)」をメソッドとしてクラスに定義にして、
そのための条件や必要なデータなどはクラス自体が判断したり取得したりするか、引数として与える
もし、Getter等でデータをメインルーチンに集めて統合的に処理するなら従来の手続き型になる
今回の例で言えば、
機器BCからから受け取ったデータを処理するPublicメソッドを定義したクラスを作って
機器Aに応じて機器BCにコマンドを送ったりっていった処理は、そのクラス内でやるのがいいかも
85デフォルトの名無しさん
2020/05/15(金) 01:33:02.14ID:PClFYiSI ExcelフォームにExcelグリッドコントロールがあればむてきだたかもしれない
86デフォルトの名無しさん
2020/05/15(金) 01:38:53.47ID:BHVdwBuM 割り込みとかコールバックとかわからないシロートの発想で笑える
87デフォルトの名無しさん
2020/05/15(金) 01:42:44.01ID:h8nORdF5 >>84
CSVを扱う必要性がじりじり迫ってるんだけどネットにあるコードの窃盗常習犯で覚える脳みそがないからノースキル野郎
当然モチベもないから全然進んでない
@ダイアログで任意のCSVデータを選択して
それを今開いているシートに読み込まれる(CSVデータは読み込んだ後に自動で閉じる)
(元々シートにグラフがあるがそれはそのまま)
Aこのシートをブック内の一番右にシートをコピー
多分Aはどこかで拾えそうだけど@のプロシージャがありそうでなかなかネットから盗めず激ムズ
ここの勉強できる人達は勝ち組だよ
CSVを扱う必要性がじりじり迫ってるんだけどネットにあるコードの窃盗常習犯で覚える脳みそがないからノースキル野郎
当然モチベもないから全然進んでない
@ダイアログで任意のCSVデータを選択して
それを今開いているシートに読み込まれる(CSVデータは読み込んだ後に自動で閉じる)
(元々シートにグラフがあるがそれはそのまま)
Aこのシートをブック内の一番右にシートをコピー
多分Aはどこかで拾えそうだけど@のプロシージャがありそうでなかなかネットから盗めず激ムズ
ここの勉強できる人達は勝ち組だよ
2020/05/15(金) 02:20:59.50ID:+1dt40Gj
勝ち組かどうかは別問題だな
89デフォルトの名無しさん
2020/05/15(金) 09:02:28.91ID:uW7fixd9 非表示のシートがいくつかある状態で、一番右端のシートをアクティブにしたいのですが、worksheets.countで取得しようとすると、非表示のシートが選択されてしまいます
表示されているシートの一番右端をアクティブにするにはどうすればいいですか?
表示されているシートの一番右端をアクティブにするにはどうすればいいですか?
90デフォルトの名無しさん
2020/05/15(金) 09:32:08.17ID:uW7fixd9 質問がおかしかったので書き直します
マクロブックでなくアドインでやっています
一番右端のシートから値を取ってきて、その後に作成する新規のシートに貼り付けたいです
Sheets(WorkSheets.Count).Activateで、表示上の一番右端のシートをアクティブにすることはできるのですが、操作ができません
非表示のシートがいくつかあり、シート番号は若くてもそちらがWorkSheets.Countで選ばれているようで、値はそこから取ってきてしまっているみたいです
エクセルの表示上のシートの並びで、一番右端を選択してそこから値を取りたいのですが、どうすればいいでしょうか?
マクロブックでなくアドインでやっています
一番右端のシートから値を取ってきて、その後に作成する新規のシートに貼り付けたいです
Sheets(WorkSheets.Count).Activateで、表示上の一番右端のシートをアクティブにすることはできるのですが、操作ができません
非表示のシートがいくつかあり、シート番号は若くてもそちらがWorkSheets.Countで選ばれているようで、値はそこから取ってきてしまっているみたいです
エクセルの表示上のシートの並びで、一番右端を選択してそこから値を取りたいのですが、どうすればいいでしょうか?
2020/05/15(金) 09:38:25.85ID:/bb/ZDbJ
For i = Worksheets.Count To 1 Step - 1
If Worksheets(i).Visible Then
Worksheets(i).Activate
Exit For
End If
Next
If Worksheets(i).Visible Then
Worksheets(i).Activate
Exit For
End If
Next
92デフォルトの名無しさん
2020/05/15(金) 12:19:24.18ID:Ras8zr0W93デフォルトの名無しさん
2020/05/15(金) 12:51:25.51ID:wvzrJYUA シート1にラベルやタイトルや色を設定した
雛型になるグラフがあって
それをアクティブなシートにコピーして貼り付けられる事コード、もし出来れば教えて下さい。
今はシート1に戻ってグラフをコピーして
貼りたいシートに戻って貼り付け
をやってます
数値は反映させなくて雛形になるグラフをとにかくすぐにアクティブなシートに持ってきたいです
マクロの記録でもやり方わからずです…
シート1にある("グラフ1")というのを
アクティブなシートに貼り付け、わかりませぬ
雛型になるグラフがあって
それをアクティブなシートにコピーして貼り付けられる事コード、もし出来れば教えて下さい。
今はシート1に戻ってグラフをコピーして
貼りたいシートに戻って貼り付け
をやってます
数値は反映させなくて雛形になるグラフをとにかくすぐにアクティブなシートに持ってきたいです
マクロの記録でもやり方わからずです…
シート1にある("グラフ1")というのを
アクティブなシートに貼り付け、わかりませぬ
2020/05/15(金) 13:03:29.53ID:ChXNP+/8
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
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
95デフォルトの名無しさん
2020/05/15(金) 17:00:34.32ID:WgI7x3A0 シート1にあるグラフ1をアクティブシートにコピペ
調べてみたところ結局俺がやりたいのはシンプルにこれか
マクロの記録だと限界あるわ。
調べてみたところ結局俺がやりたいのはシンプルにこれか
マクロの記録だと限界あるわ。
96デフォルトの名無しさん
2020/05/15(金) 19:22:44.18ID:h8nORdF5 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のところでエラーになりますけどどう手直ししたらいいですか
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のところでエラーになりますけどどう手直ししたらいいですか
2020/05/15(金) 19:26:11.81ID:B9XmHC3V
>>96
vbNoのとき、ggはいくつ?
vbNoのとき、ggはいくつ?
98デフォルトの名無しさん
2020/05/15(金) 19:30:22.00ID:h8nORdF52020/05/15(金) 19:39:43.78ID:RYV/7Uuu
1つめの Do while に対応する Loop がない
100デフォルトの名無しさん
2020/05/15(金) 19:49:26.82ID:h8nORdF5 >>99
ほんと恥ずかしすぎるミスでした。
ありがとうございます。
間違っといてなんだけど自分の考え方が間違ってない事もわかってホッとしました。
何言ってんだこいつと思われて当然ですがそんな気持ちです
ほんと恥ずかしすぎるミスでした。
ありがとうございます。
間違っといてなんだけど自分の考え方が間違ってない事もわかってホッとしました。
何言ってんだこいつと思われて当然ですがそんな気持ちです
101デフォルトの名無しさん
2020/05/15(金) 20:01:55.19ID:BHVdwBuM >>100
そもそもそれ以前に馬鹿過ぎて話にならない
そもそもそれ以前に馬鹿過ぎて話にならない
102デフォルトの名無しさん
2020/05/15(金) 20:42:05.52ID:SPdgeRtp インデントで分かったりしないもんかね
103デフォルトの名無しさん
2020/05/15(金) 20:58:58.45ID:Syu0A9me VSのエディタなら勝手にやってくれるけどExcelVBEはそこまで親切じゃないから、
・Doと書いたら、中間の処理書く前にLoopをセットで先に書く。
・中間の処理はインデント付ける
こうしないと長い処理だとミスる。
・Doと書いたら、中間の処理書く前にLoopをセットで先に書く。
・中間の処理はインデント付ける
こうしないと長い処理だとミスる。
104デフォルトの名無しさん
2020/05/15(金) 21:24:59.09ID:1l79UUQc 田中先生ユーチューバーになってたんか。
エクセル系ユーチューバーは前からいるけど
彼らのチャンネル登録者数どんどん抜いてくな。
マクロ以外にもエクセルの機能全般もアップしてるし
他のエクセルユーチューバ―はもう躍進することはないな。
ご愁傷さま。
エクセル系ユーチューバーは前からいるけど
彼らのチャンネル登録者数どんどん抜いてくな。
マクロ以外にもエクセルの機能全般もアップしてるし
他のエクセルユーチューバ―はもう躍進することはないな。
ご愁傷さま。
105デフォルトの名無しさん
2020/05/15(金) 21:26:28.78ID:xUEF26i7 インデントしてるとVBEが勝手に空行にもインデント用スペースいれやがる
106デフォルトの名無しさん
2020/05/15(金) 22:51:12.17ID:B9PySqRq マクロの処理だけmsオーダーで止めて、シートでの作業には影響させない方法ってありますか?
sleepやapplication.waitを使うと、止めている間はマウスポインタが待機中に切り替わって気が散ります。
sleepやapplication.waitを使うと、止めている間はマウスポインタが待機中に切り替わって気が散ります。
107デフォルトの名無しさん
2020/05/15(金) 23:02:13.60ID:RYV/7Uuu 意味が解らん
108デフォルトの名無しさん
2020/05/15(金) 23:07:56.71ID:b6XlKvF2 DoEvents を定期的に入れてあげて妥協するのがいいのでは
109デフォルトの名無しさん
2020/05/16(土) 00:10:47.87ID:DWLUsoam 気が散るほうが悪い
110デフォルトの名無しさん
2020/05/16(土) 00:24:20.49ID:dnsCYCpT waitが長いと入力作業とかできんだろうな
マルチスレッドできたっけ?
マルチスレッドできたっけ?
111デフォルトの名無しさん
2020/05/16(土) 00:27:49.65ID:PCcdgCy6112デフォルトの名無しさん
2020/05/16(土) 00:41:23.65ID:W7xr4LsN 馬鹿は全角英文字、自分勝手な略語を使う法則
113デフォルトの名無しさん
2020/05/16(土) 02:12:04.53ID:PXYVKn+N 非表示にすれば気にならないとか?
114デフォルトの名無しさん
2020/05/16(土) 02:34:42.15ID:LVL/9uGV msオーダーって何?
115デフォルトの名無しさん
2020/05/16(土) 05:07:24.47ID:VHZcBZeD マイクロ秒で処理するってことかな?
116デフォルトの名無しさん
2020/05/16(土) 08:49:36.47ID:mgXvg9qv あーミリ秒指定でマクロを止めたいってことか?
それでもまだわからん
それでもまだわからん
117デフォルトの名無しさん
2020/05/16(土) 09:59:53.95ID:Tk5Omr1n せめてmsecオーダーと書けばわかりやすいのに
しかも100ミリとかじゃないか?数ミリは気づかないはず
GetInputStateとDoEventsでどうにかできんか
しかも100ミリとかじゃないか?数ミリは気づかないはず
GetInputStateとDoEventsでどうにかできんか
118デフォルトの名無しさん
2020/05/17(日) 13:30:28.43ID:qdHuVgcd119デフォルトの名無しさん
2020/05/17(日) 13:48:57.86ID:LkRZ0WP+ [現象]
excelの 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 が存在しません。
よろしくお願いします
excelの 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 が存在しません。
よろしくお願いします
120デフォルトの名無しさん
2020/05/17(日) 14:05:50.89ID:dvSHUyYR >>119
死ね
死ね
121デフォルトの名無しさん
2020/05/17(日) 14:06:13.48ID:GAbG2JNM >>119
ワークシートのページレイアウトからテーマは変更できる?
ワークシートのページレイアウトからテーマは変更できる?
122デフォルトの名無しさん
2020/05/17(日) 14:11:19.59ID:oJIHh9Jk >>120
この馬鹿モンが
この馬鹿モンが
123デフォルトの名無しさん
2020/05/17(日) 14:12:58.27ID:oJIHh9Jk >>121
はいできますがそれでは解決しないのです
はいできますがそれでは解決しないのです
124デフォルトの名無しさん
2020/05/17(日) 14:21:32.25ID:GAbG2JNM >>123
まずレジストリのVBA\7.1\Commonが存在しないことが異常だから、Excelを再インストールするのが一番の早道な気がする
まずレジストリのVBA\7.1\Commonが存在しないことが異常だから、Excelを再インストールするのが一番の早道な気がする
125sage
2020/05/17(日) 14:31:40.69ID:LkRZ0WP+127デフォルトの名無しさん
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からとかに変えるにはどこ弄ればいいですか?
誰かコメントをこれに添えてもらえませんか…
前スレの大恩人に救われたコードを更に流用したいです
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★4 [Hitzeschleier★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【27歳会社員】「自慰行為に使うために」コインランドリーの乾燥機から24歳女性の下着など計11点(時価8万2080円相当)盗んだ疑い [nita★]
- トランプ、G7に代わるcore 5を発表 [805596214]
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- 皇室に娘を嫁がせて外戚として権勢を振るいたい。皇室の権威を傘に着て悪逆の限りを尽くすのだ。可能か?
- 【悲報】日本共産党、ツイッター速報にブチギレ法的措置WWWWWWWWWWWWWWWWWWWWWWWWWWWW [935793931]
- 木曜日のんなっしょい❗(・o・🍬)仕放題スレ🏡
- grok制限されたからチャッピーとかジェミニ使ってるけどこいつらおもんなさすぎ
