[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/26 17:47 / Filesize : 275 KB / Number-of Response : 1016
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA 質問スレ Part76



1 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 02:23:41.78 ID:2t63WK/jM.net]
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑2行に減ってるけど、同じ内容を3行に増やして貼り付けること

ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK

次スレは>>980が立てること
無理なら細かく安価指定

※前スレ
Excel VBA 質問スレ Part75
https://mevius.5ch.net/test/read.cgi/tech/1644384272/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

192 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 23:30:03.20 ID:e/WRg45j0.net]
>>189
WindowsというOSの(ほぼ)すべてがイベントで動いてる
キー入力も画面表示もディスクアクセスも、何をするにもイベントが必ず使われる

普通に使ってるだけで、ユーザーの関知してないところで毎秒数十万回以上のイベントが発生してて、その一部は溜めたり無視することもできる
そこで溜まったイベントをまとめて処理するのがDoEvents

193 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 23:44:03.30 ID:lhQpV8J50.net]
肥溜めの水で流すボタンだな

194 名前:デフォルトの名無しさん (スップ Sdba-LYQt) [2022/05/23(月) 23:54:22 ID:hvqO78Q3d.net]
>>190
中途半端な知識の人の回答だな
所詮はExcel使いか

195 名前:デフォルトの名無しさん (ワッチョイ abda-ZFfB) mailto:sage [2022/05/24(火) 00:04:30 ID:voOeNnQV0.net]
そうか?

196 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 01:52:28.78 ID:KUFh4POM0.net]
ググって読んでもさっぱりわからんがプロシージャの共通化(´・ω・`)これかも。

197 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 02:50:59.45 ID:iiO+sB1VM.net]
>>190
ExcelのVBAがWindowsの全てのイベントを処理しているとでも思ってんの?
いつの時代のWindowsだよ

198 名前:デフォルトの名無しさん (ワッチョイ 372f-tVBN) [2022/05/24(火) 06:09:04 ID:VAh5gH+20.net]
>>195
話せ。

199 名前:デフォルトの名無しさん (ワッチョイ 0eda-yjPv) [2022/05/24(火) 06:13:25 ID:3Lu4tPby0.net]
タスク

200 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 13:00:25.03 ID:voOeNnQV0.net]
60歳70歳の古参プログラマーじゃないんだからさ



201 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 21:38:10.53 ID:ylp1zOdx0.net]
Loop中など他からの割り込みの余地入れる=DoEventsかと思ってました
厳密な意味は知らずに使ってました

202 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 22:07:09.92 ID:kwRZndg1d.net]
昔はWindowsのイベントループそのものだったけど、今は>>199くらいの認識の方が正しいよ
今のExcelは裏でスレッド使いまくってるから複雑

203 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 22:24:18.97 ID:L7ubAEHL0.net]
少しまだ難しいですが、とりあえずはwindowsの処理で無視していた分を一旦返してあげるみたいな処理なのだと認識しました。

204 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 22:30:40.02 ID:1UrgJSe10.net]
昔はシングルコアで激重だったから適度に返さないとすぐに応答なしになった
今はマルチタスクで割と重い処理も平気

205 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 05:02:47.05 ID:1b7KkSYk0.net]
個人用マクロブックのプロシージャからシートに挿入されているマクロのボタンを押す方法を教えて下さい

206 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 06:07:16.42 ID:BON/kfv30.net]
privateを削除するんじゃなくて?
物理的にクリック?

207 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 06:43:21.13 ID:1b7KkSYk0.net]
物理的にではなくシート側のボタンのクリックイベントのプロシージャを個人用マクロブックのプロシージャから動かしたいです。

208 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 06:45:16.14 ID:1b7KkSYk0.net]
application.runは駄目でした

209 名前:デフォルトの名無しさん [2022/05/25(水) 06:47:11.61 ID:Vyx13HCI0.net]
イベントとか言うから初心者が勘違いする

210 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 07:53:58.12 ID:SJVW4y9pr.net]
プロシージャの中身を外出ししようとか考えたのか?



211 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 08:31:27.12 ID:2Cw1QSym0.net]
>>203
Call

212 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 09:47:51.39 ID:rgUSKbgWd.net]
いやここはレイズだ

213 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 18:45:23.11 ID:cRKMftFU0.net]
>>206
呼び出し先のブック名は入れてるのかもしれないけどモジュールが複数あってモジュール名は入れてない、とか?

214 名前:デフォルトの名無しさん (ワッチョイ 3336-4kT2) mailto:sage [2022/05/25(水) 19:54:25 ID:ZQqE1PHN0.net]
説明が少なくて申し訳ありません。
マクロボタンのついた会社の帳票のマクロボタンを押して処理をした上に自分の個人用マクロブックの処理がしたいです。私は会社の帳票のマクロを変更する技術も権限もないのでこのような形を取っています

215 名前:デフォルトの名無しさん (アウアウウー Sac7-yjPv) [2022/05/25(水) 20:09:39 ID:ySKajOtFa.net]
やっちゃいけないことじゃねーの

216 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 20:44:02.25 ID:rgUSKbgWd.net]
会社のマクロにパスワードが掛かってる、かつ起点となるマクロはその会社の方のマクロって事かな?

1. 会社のExcelと個人で用意したxlsm(個人用ブックである必要無し)を準備する
2. vbs やps1の外部ファイルから会社のVBA実行→個人で用意したxlsm内のVBA実行

これで行けるんでねえの?

217 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 20:52:50.14 ID:D9uW2fk+0.net]
変更する技術がないなら触らない方が良いと思うよ

218 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 21:08:25.40 ID:UbZSbjiw0.net]
そもそも権限のないものを突破しようってのは倫理的にどうなのって気がするが
まずは上司なりなんなりに相談するところからじゃね

219 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 21:14:00.59 ID:oImj9UUVM.net]
ややこことは辞めたほうがいいね

220 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 22:29:41.62 ID:BtdSsAyL0.net]
パスワードかかってるマクロなんて適当な野良アプリでわかるけどな



221 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 00:34:12.72 ID:O+gRo7JH0.net]
会社用のマクロ実行したあと、個人用マクロを実行するだけの作業なのに
あくまでも自分の分からない領域まで手を入れたいってのは分からんな
マクロ壊して分かりづらい変なトラブルになったら責任云々とかになりかねないかもしれんぞ

214のやり方がむりなら諦めるか上長に相談するべきやと思うで

222 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 06:53:49.33 ID:FGzk4ul90.net]
>>219
100個ぐらいあるエクセルファイルを開いて、そのエクセルファイルのマクロボタンを押して一回目の処理をして次に個人用マクロブックに作った処理をしてエクセルファイルを上書き保存して閉じるを繰り返さなくてはいけないのでマクロ化したいのです。エクセルファイル側のプロシージャを個人用マクロブック側に持たせるのが一番簡単かなと

223 名前:デフォルトの名無しさん [2022/05/26(木) 06:58:26.73 ID:5W+gZAxj0.net]
その会社の帳票マクロとやらのファイルを開いてボタン押せるんならSendKeys使えば何とかなるんじゃねーの?(鼻ホジ)

224 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 07:56:10.65 ID:JEeygHRrr.net]
>>220
工夫するのは上長に100個もある無駄なExcelファイルについて改善を提案すべきじゃね
下手なやつの自動化は害にしかならない
それでだめなら自分の責任でこういうやり方していいかとか聞くとかそういう流れにはもうしたんやろ?

外部から呼ぶ214のやり方で無理なら諦めろ
改善して見込める君の給与メリットがそれほどの額じゃないんやろ

これ公務員とかならマジで税金の無駄やなw

225 名前:デフォルトの名無しさん (ワッチョイ 7fce-eugl) mailto:sage [2022/05/26(木) 08:40:43 ID:MTu1kK/A0.net]
公務員なんて文系の仕事だから、効率のいいデータ整理やプログラミングができるやつなんてほぼいない
しかし理系の人材に役所仕事させるのは税金の浪費以上にもったいない

226 名前:デフォルトの名無しさん (ワッチョイ 8a3d-Td31) mailto:sage [2022/05/26(木) 14:50:09 ID:6r93DwI70.net]
>>206
wshでしょっちゅうやってるけど

Set fso = Wscript.CreateObject("Scripting.FileSystemObject")
CurrentDirectory = fso.getParentFolderName(WScript.ScriptFullName)
Set ExApp = Wscript.CreateObject("Excel.Application")
ExApp.Visible = True 'エクセル可視/不可視設定
ExApp.DisplayAlerts = False '警告メッセージをオフ
Set Wb = ExApp.Workbooks.Open(fso.BuildPath(CurrentDirectory,"Book1.xlsm"))
ExApp.Application.Run "Macro1"

227 名前:デフォルトの名無しさん [2022/05/26(木) 15:48:41.66 ID:5fQbWZ9ra.net]
上司に黙ってデータ改竄とかしたら
会社の資産を横領できちまうな

228 名前:デフォルトの名無しさん [2022/05/26(木) 18:34:16.06 ID:MJ/jCOeZ0.net]
農協で30年勤めたOLがやりそうなイメージ。

229 名前:デフォルトの名無しさん [2022/05/26(木) 18:36:23.42 ID:MJ/jCOeZ0.net]
郵便局の場合、昭和のころから歴代の局長が引き継いでそう。
漁協の場合、いくつもの窃盗グループがありそう。
悪いこととは知らなかったって言いそう。

230 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 22:05:05.56 ID:KppvSZ/JH.net]
今日いちにち会社で配列に関する記事を読んでましたがここ10年くらいVBAに触れてなかったせいもあり
よく理解できないためお力をお借りしたいです。

20万行くらいある空白の無いデータを処理したいのですが、私の書いたコードではどうしても速く処理できません。
F列が「Distribution (PCW; Sales value」とあったらその右のG列の数字を見に行き、3以下ならその行含め下に2行、合計3行削除したいです。

Sub TEST1()
Application.ScreenUpdating = False

Dim A
'セルの値を配列に格納
A = ActiveSheet.Range("A1").CurrentRegion

'配列をループ
For i = UBound(A, 1) To 2 Step -1

'「If」で検索
If A(i, 6) = "Distribution (PCW; Sales value)" Then
If A(i, 7) <= 3 Then
Cells(i, 1).Resize(3, 1).EntireRow.Delete Shift:=xlUp
End If
End If
Next

End Sub



231 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 22:19:00.22 ID:KppvSZ/JH.net]
一応こんな感じのデータです

A列     B列    C列     D列       E列         F列                  G列       
CTM_    12Area TM_2022 sku    SKU Code Measure               TOTAL 4.18- 4.25- 5.2- 5.9-
業態合算 Hokkaido その他 キヨウリツ ゼリ-  4901325124326 Distribution (PCW; Sales value) 8.64 7.03 6.63 9.19 11.70
業態合算 Hokkaido その他 キヨウリツ ゼリ-  4901325124326  Sales Store**** 2,386. 1,830 3,254. 2,244 2,460.5
業態合算 Hokkaido その他 キヨウリツ ゼリ-  4901325124326 Sales Store***** 666 7777 888 4444 7777

232 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 22:19:48.67 ID:KppvSZ/JH.net]
やっぱりずれた。。。(>_<)

233 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 22:28:17.29 ID:dA4WjGxV0.net]
>>228
Excelの行を1行1行Deleteするのはどうやっても重くなるから出力用の配列を作るのがいいかな

234 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 22:30:55.09 ID:6l5xx5Q8d.net]
配列を使ってんなら配列の中で削除処理しないとそりゃあ意味無いでしょ

235 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 22:46:06.64 ID:KppvSZ/JH.net]
>>231
>>232

ごもっとです、、(;^_^A
今日は疲れたので明日ちょっと調べて試行錯誤してみます。レスいただきありがとうございました。

236 名前:デフォルトの名無しさん [2022/05/26(木) 23:00:25.66 ID:Wrt5fLCv0.net]
いつもやる方法があるけどどのくらい早いのかはよくわからん

237 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 23:01:04.69 ID:6l5xx5Q8d.net]
ユニークなキー列がもしあればディクショナリー使うのが速いよ
まあ難しければ配列でも全然良いけど

238 名前:デフォルトの名無しさん (HK 0Hca-ib4B) mailto:sage [2022/05/26(木) 23:26:48 ID:KppvSZ/JH.net]
>>234
少なくとも私のコードよりは速いんじゃないかな。。
15万行を10分以上かかってます(;^_^A

>>235
ディクショナリーとは初めて聞きました。でもユニークなキーがありませんでした。。
SKU Codeという商品コードは基本ユニークなんですが3行ずつ同じ商品コードが並んでるんです。。(;^_^A

239 名前:デフォルトの名無しさん (ワッチョイ 768c-aDUG) [2022/05/26(木) 23:42:29 ID:Wrt5fLCv0.net]
>>236
じゃあこんな感じで作ったので10分以上がどのくらい早くなったか遅くなったか教えてください。

Sub TEST1()
Application.ScreenUpdating = False

Dim A
'セルの値を配列に格納
A = ActiveSheet.Range("A1").CurrentRegion

'配列をループ
For i = UBound(A, 1) To 2 Step -1
Debug.Print i

'「If」で検索
If A(i, 6) = "Distribution (PCW; Sales value)" Then
If A(i, 7) <= 3 Then
Cells(i, 6).Resize(3, 1).Interior.Color = RGB(255, 0, 0)

End If
End If
Next
'
ActiveSheet.Range("A1").CurrentRegion.Select
Selection.AutoFilter Field:=6, Criteria1:=RGB(255, 0, 0), Operator:=xlFilterCellColor
Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
Selection.SpecialCells(xlCellTypeVisible).Select
Application.ScreenUpdating = True
Selection.Delete 'これはしないで目で確認して手動でDELETEしても良いかも

End Sub

240 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 23:50:53.02 ID:HeWhwrio0.net]
>>228
・最初にセルの内容をvariantの2次元配列に格納。

・そのvariantを弄くり倒す。

・ほしい結果になったvariantを最後に書き戻す。

セルはフォントだの背景色だの罫線だの表上のアドレスだのとにかくいろんな



241 名前:情報がてんこ盛りなので、valueみてりゃいい処理ならできるだけ書き換えない。 []
[ここ壊れてます]

242 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 00:18:49.05 ID:JbgC4v+W0.net]
あと、蛇足なんだけどソースでやってることそのものをコメントで書いてもあまり意味が…。

'配列をループ
For i = UBound(A, 1) To 2 Step -1

とか

'「If」で検索
If A(i, 6) = "Distribution (PCW; Sales value)" Then

は、いらないのではと。


もひとつ、削除系処理は下からループさせたほうが無難な気がしないでもない。

243 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 00:19:25.67 ID:JbgC4v+W0.net]
あ。ループは俺の読み間違いだ。ごめんなさない。

244 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 00:22:08.18 ID:5SJXPRgg0.net]
>>235
Dictionary使うならユニークなキーがなくても行番号をキーに突っ込めば大体応用効くよね
アイテムはArrayで格納すればいいし

245 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 00:30:45.85 ID:5SJXPRgg0.net]
ちなみに行削除は、DeleteTargetRowみたいなRange型の変数を使って、削除対象の行が出たらその変数にUnionしていってまとめて削除、がまだ速いかな

246 名前:デフォルトの名無しさん [2022/05/27(金) 01:16:57.81 ID:+979Xq8C0.net]
>>237
自分で15万行のデータで試したらDebug.Print i を外しても遅すぎたので作り直し
うちでは5秒でした (Core2Duo E7500 RAM8G win10 Excel2010) 元データのF列に色がないことが条件ですけどね

Sub TEST1()
Dim startTime As Double: startTime = Timer
Application.ScreenUpdating = False
Dim A
A = ActiveSheet.Range("A1").CurrentRegion
For i = UBound(A, 1) To 2 Step -1
If A(i, 6) = "Distribution (PCW; Sales value)" Then
If A(i, 7) <= 3 Then
Cells(i, 6).Resize(3, 1).Interior.Color = RGB(255, 0, 0)
End If
End If
Next
'
Application.ScreenUpdating = True
Dim mySheet As Worksheet: Set mySheet = ActiveSheet
Dim tempSheet As Worksheet: Set tempSheet = Worksheets.Add
Dim myRange As Range: Set myRange = mySheet.Range("A1").CurrentRegion
myRange.AutoFilter Field:=6, Operator:=xlFilterNoFill
myRange.Offset(1, 0).Resize(myRange.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Copy tempSheet.Range("A1")
mySheet.ShowAllData
myRange.Clear
tempSheet.Range("A1").CurrentRegion.Copy mySheet.Range("A1")
Application.DisplayAlerts = False
tempSheet.Delete
Application.DisplayAlerts = True
MsgBox (Timer - startTime & "秒でした")
End Sub

247 名前:デフォルトの名無しさん [2022/05/27(金) 02:06:50.25 ID:+979Xq8C0.net]
myRange.Offset(1, 0).Resize(myRange.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Copy tempSheet.Range("A1")
を下に修正
myRange.SpecialCells(xlCellTypeVisible).Copy tempSheet.Range("A1")

248 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 06:53:03.71 ID:0WSlRFUXd.net]
>>241
お何か良いアイデアかも
横からだけど使わせて貰おう

249 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 06:53:21.55 ID:XEPyrX550.net]
>>237
おそら>>243さんもそうかな?

あの後寝てしまい申し訳ありません。
8時くらいになるかと思いますが動かしてみますのでお待ちくださいm(__)m
夜遅くまでどうもありがとうございます!(´;ω;`)

>>238
スミマセン、・そのvariantを弄くり倒す。
からもうよくわからないレベルです。。でもありがとうございます。

>>239
基本はネットで拾ったコードを貼っているので、、
でも自分の参考にはなってます笑。
ありがとうございます。

>>241-242
ちょっと時間あるときに勉強してみますね(;^_^A

250 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 07:26:42.06 ID:XEPyrX550.net]
>>243
えっ!!何が起こったの?
こっちも5秒で終わりましたっっ!!!えええぇ信じられないスゴイスゴイ!!!(笑)

ちょっと後でゆっくりF8で動かしてみようと思います!!!
本当に助かりました!ありがとうございました!!!
(´;ω;`)



251 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 07:28:44.47 ID:XEPyrX550.net]
>>244
見落としてましたスミマセン。修正してなくてもめちゃくちゃ速く動きましたが
こちらも動かしてみますね。ありがとうございました!m(__)m

252 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 08:09:16.73 ID:XEPyrX550.net]
>>244のは見出しが消えるのを修正したコードでしたね(;^_^A

あと、会社のPCで動かしてみたら2秒もかかりませんでした。
素晴らしいコード、本当にありがとうございましたm(__)m 配列の勉強したいと思います。

253 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 08:25:54.12 ID:0WSlRFUXd.net]
質問者の要望事項がクリアだったしサンプルコードや表のイメージを出してくれたから回答がしやすかったと思います
殆どの質問者はそんな事までしないクレクレちゃんだから

254 名前:デフォルトの名無しさん (ワッチョイ c3a5-ib4B) mailto:sage [2022/05/27(金) 08:34:33 ID:XEPyrX550.net]
>>250
昔のテンプレに沿った質問の仕方してなかったのでダメ元でしたが
最低限やるべきことはクリアしてたみたいで良かったです。
(*^-^*)

255 名前:デフォルトの名無しさん (ワッチョイ df49-OVn5) mailto:sage [2022/05/27(金) 10:41:33 ID:X2EnXYhx0.net]
>>250
これはほんとにそう
ふわっと伝えるだけできちんと勝手に書いてくれると思ってるやつの多いこと

256 名前:デフォルトの名無しさん [2022/05/27(金) 11:15:34.63 ID:S0cy91Tb0.net]
エクセルで10万行以上とか設計が間違ってる

257 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 12:57:26.47 ID:fJfHid2B0.net]
定常業務としてはExcelではやらなくなるにしても、
10万行相手に、最初の試行錯誤をExcelでやってみる
というのはよくある話かと。

設計云々はそれが分かってから。

258 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 13:09:45.71 ID:X2EnXYhx0.net]
ワイの感覚では数百行とかでもExcel脱却したいし、
こんなんSQLと適当なスクリプトですぐ済むやろ
Excelになってるから重くなったりしちゃうだけで
Accessはしらん

みんなExcel万能思想すぎるんだよなあ

259 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 13:45:31.62 ID:x8n9vcRZ0.net]
職場で与えられた環境でどうにかしようとすると、
結果的にVBAやバッチファイル、PSスクリプトになる気がする

260 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 14:07:07.28 ID:s+hQ4v9CM.net]
SQL書けるんだったら
そもそも質問主はこのスレに来とらんことに気付かない、
ただのマウンテンゴリラはウセヤガレ



261 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 14:16:48.65 ID:pbjQK1XdM.net]
VBAもできないからこのスレにいるわけで、間違った道に進む前に正してあげるのは良い

262 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 20:25:14.34 ID:e5D1B4Eg0.net]
個人用マクロブックからエクセルのシートのマクロを動かす方法がわかりました。ファィル名をtest.xlsm、シートのボタンに登録してあるマクロをsub test()~end subとして
Application.Run"'test.xlsm'!Sheet1.test"
これで動きました。Run以下をダブルクォーテーション、ファイル名をシングルクォーテーションで囲むのがポイントです。

263 名前:デフォルトの名無しさん [2022/05/28(土) 02:17:11.31 ID:wx0k8mom0.net]
そもそも個人用ってオマ環

264 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 03:26:15.21 ID:wx0k8mom0.net]
権限のない新入社員が勝手にマクロ作って社内のデータ壊したらどうなるかわかっているのかな?
そのデータほんとに削除していいのですか?
条件ミスって消してはいけないデータ削除してしまったら・・・
やろうと思えばできるけど俺は怖くて自前のマクロなんか動かしたいとは思わんのだがな

265 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 03:40:33.21 ID:Yook3X5e0.net]
>>261
データいじる前にバックアップしないのか?

266 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 05:54:52.90 ID:2n2fc/gL0.net]
>>261
間違えてデータを削除するプログラムを書いてしまうなんて普通ありえるのだろうか?AIが暴走するといかんからパソコンやスマホを使うのもやめたほうがいいレベルの発言だな

267 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 06:07:09.43 ID:PBRR2XJta.net]
>>261
なんでこんなスレ見てるんだ?

268 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 08:04:53.73 ID:oqZ/P1Bcr.net]
これをループで100個くらいのブックに処理するらしいから漏れのほうが怖いね、ワイ的には
「自動化したから漏れたんだ」とか言われたら今後やりづらくなる

269 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 09:48:04.57 ID:PJ5ZLRH80.net]
他の.xlsxのファイルの中身を、新たにExcelの画面を開かずに、
配列などに読み込む方法はありますか?
読み込みたいファイルのレコード数は毎回違うのですが、
可能なのでしょうか

270 名前:デフォルトの名無しさん (スフッ Sdb3-ibZ+) mailto:sage [2022/05/28(土) 09:52:31 ID:SCHew0ynd.net]
マクロ4.0
もしくはアドレス直指定

visible=False だと実際は開いてても見えないように出来たんだっけか?



271 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 11:35:21.85 ID:4vP5xCiD0.net]
aに16進数のABを代入するときは
a=&HAB
だけど、
aに2進数の100を代入するときはどう書く?
a=&B100
だとエラーになるんだが・・・・

272 名前:デフォルトの名無しさん [2022/05/28(土) 11:39:37.94 ID:81XaDMLN0.net]
>>263
cd /
rm -Rf *

273 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 12:20:10.23 ID:XKEF46cS0.net]
そも2進数なんてvbaにあったっけ

274 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 13:12:36.54 ID:bNMWJIq90.net]
2進数を表すリテラルはないので、16進数や8進数で代用。
変換できればいいのならワークシート関数にある。

275 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 13:19:54.56 ID:Yook3X5e0.net]
>>268
専用の命令はないことも関数のサンプルもググったらすぐ見つかったが他人を辞書代わりにするつもりとかか?

276 名前:デフォルトの名無しさん [2022/05/28(土) 14:33:33.04 ID:K6Jk35Ar0.net]
旧BASICやアセンブラ扱ってた奴なら
少なくとも1バイト、多ければ2バイトまで表現出来る
2の倍数を覚えてるから無問題

277 名前:デフォルトの名無しさん [2022/05/28(土) 15:36:05.64 ID:wx0k8mom0.net]
>>263
初心者が作ったマクロなめんなw

278 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 16:00:35.49 ID:gUD13Ggk0.net]
マーカー付折れ線グラフで、マーカーの色と透明度を変えるマクロがなんかうまく行かなくて、
折れ線の線種や色、透明度は素直に変更出来ても、
マーカーの色がデフォルトに戻ったり、透明度を変更出来なかった。

マクロの記録を取ると何やら不可解なコードになり、
再実行すると余計なコード?でエラーになったり。

日本語サイトではなかなか解決策を見つけられず、
英語サイトを漁ってみたら、だいぶ昔に整理がなされていた。

なんと、なぜか唐突に「前景色」と「背景色」をセットで指定してから
透明度を指定すると上手くいくんだと。
https://www.andypope.info/tips/tip015.htm

他にも、マーカーのスタイルを最後に指定しないと上手くいかない説(Mac版固有?)とか。
https://forum.ozgrid.com/forum/index.php?thread/78831-set-transparency-of-individual-chart-points-mac/

VBAの中で、グラフの線種やマーカー種類、色のプロパティに対して、
マーカーの体系は取って付けたというか、
なんか入り組んでて把握しにくい。

Excelの歴史の中で、これは後付けだったのかしら?

279 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 16:15:07.22 ID:2QSEcnRR0.net]
>>274
お前がその新入社員とやらに苦しめられた経験があるのは分かったから、このスレから消えろ。

280 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 17:51:43.48 ID:2n2fc/gL0.net]
>>274
初心者が作ったマクロで危険度が高いやつの具体例をあげてみて。今日中に書き込みがなければ、その程度とみなすから



281 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 19:18:12.47 ID:6Sv+ENTH0.net]
タコペッティのユーチューブチャンネルより

・週2日出社、週2日在宅の週4日勤務が最高の働き方だと提唱したい
・週休3日制になったら給料を減らされる??そんな考えだからいつまで経っても貧乏なんだよ...
・【朗報】「在宅勤務OK」の求人、コロナ前と比べて7 7倍に上昇!
・【驚愕】リモートワーク求人が13倍に増加w
リモートワークができる人とできない人とでますます格差は広がる...
・【悲報】「会社員に戻りたい!」というフリーランス、全体の3%しかいないw
・【悲報】副業が解禁されても、副業を見つけられずに困窮する会社員が続出...
  日頃から副業をやっておくことの重要性を再認識しよう
・【驚愕】5人に1人は本業よりも副業収入の方が多いことが判明w 
本業よりも稼げる副業とはなんなのか??

282 名前:デフォルトの名無しさん (ワッチョイ 518e-95+F) [2022/05/28(土) 20:21:06 ID:/6Rfh39q0.net]
>>277
幼稚な馬鹿がよく使うマウント取ったと自分で思い込むために使う言葉

何時何分何秒?
今日中に

283 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 20:58:43.99 ID:Yook3X5e0.net]
>>277
あるとしたらもともと設定してある参照先やリンクや関数とかを知らずに上書きしたうえで保存するとかかね
このセルはいじらないでくださいって手作り感のあるコメントとか見たことない?

284 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 21:54:10.82 ID:2n2fc/gL0.net]
初心者の作ったマクロに悩まされたエピソードがいくらでも出てくるかと思いきや単なる作り話かい?なめてたのはお前の方だったな

285 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 22:12:40.91 ID:IaZrO6TYM.net]
操作を間違うと処理が狂ってUsersの中身を全て消そうとしてくるマクロになら遭遇したことある
あとはシンプルにブックやシートの指定をちゃんとしてなくて別に開いてたファイルをメチャクチャにしちゃうとかがまぁよくある可愛い話

あとは別に危険ではないけど新規ブックを作成してそこにマクロを乗せてローカルで実行させるってマクロが
書き込んでくるコードにOption Exli

286 名前:citが含まれてるせいで変数の宣言を強制するにチェックを入れてるとエラー停止するマクロに遭遇した時はおったまげたな []
[ここ壊れてます]

287 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 22:16:27.20 ID:Yook3X5e0.net]
>>281


288 名前:デフォルトの名無しさん [2022/05/28(土) 22:31:28.88 ID:K6Jk35Ar0.net]
初心者でよくあるのは
「すみまdーん、先輩、SQLのDELETE文の発行部分でWHERE区付け忘れてデータ全部消しちゃいましたー」って奴かな
もちろんUPDATE区の場合もある。

当然、UT環境でテストする前だからそうそう致命的になることはないけど
その環境で同時期にテストしてた人達には平謝り、最低1日分のテストデータ作り直しになったりして白い目で見られるようになったりはするな。

289 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 22:53:19.43 ID:OmoOa5jA0.net]
すみまdーんで吹いた

290 名前:デフォルトの名無しさん (ワッチョイ 915f-yO3c) mailto:sage [2022/05/28(土) 23:22:53 ID:ns5NBh1I0.net]
>>261


テスト・・・・


って概念無いの?



291 名前:デフォルトの名無しさん (ワッチョイ 915f-yO3c) mailto:sage [2022/05/28(土) 23:33:20 ID:ns5NBh1I0.net]
>>263
本気でsuしたあとに

cd /
rm -fr \*

の現場なら見た。悲惨だった。ずいぶん昔だけど、Unixの世界は無情だったな.

xxx ってユーティリティー供給した人がシェルスクリプト間違えて
rm -fr /usr/xxx/* ってやるところに空白入れて rm -fr /usr  /xxx/* ってやって/usr/以下全滅ってのもあったな

それでも、「なんかあったら責任取れるのか??。却下却下!!!」的な阿呆にはなりたくないよな。

その方針だと石器時代にすら進めんわ。

292 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 00:01:38.67 ID:cc4+tff/0.net]
マクロのブック自体を保存する処理なんか入れてて、しょうもない状態で保存しちゃってたのは見たな
結局以前のバージョンから戻してたけど






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<275KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef