!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付けるナリ
ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ
※前スレ
Excel VBA 質問スレ Part69
https://mevius.5ch.net/test/read.cgi/tech/1607786543/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
Excel VBA 質問スレ Part70
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ b6da-6NWR)
2021/03/18(木) 22:08:43.71ID:jtngtgXU0267デフォルトの名無しさん (ワッチョイ 9f42-Ct9k)
2021/04/17(土) 07:05:28.63ID:gHXBJYD60 まあ条件付き書式のほうがスッキリしていいと思うけどな
268デフォルトの名無しさん (ワッチョイ 9f4f-Xji8)
2021/04/17(土) 07:19:08.72ID:iZq5P4oj0269デフォルトの名無しさん (アウアウウー Sa1b-jxZb)
2021/04/17(土) 07:26:58.07ID:fydw5HpOa ふつうはシート・チェンジのモジュールのなかで
target.アドレスやtarget.valueで値を取り出すのじゃないのか
なにをやってるのかよくわからんぞ、
target.アドレスやtarget.valueで値を取り出すのじゃないのか
なにをやってるのかよくわからんぞ、
270デフォルトの名無しさん (ワッチョイ b710-uGOB)
2021/04/17(土) 07:28:09.89ID:5JzvmzAs0271デフォルトの名無しさん (ワッチョイ 375f-OlEI)
2021/04/17(土) 07:30:13.57ID:jQb3oNGZ0 口だけ出すのもなんなので一応作ってみた
Sheet1モジュール用
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Alea数値 As Range
Set Alea数値 = Range("C4:C9")
If Intersect(Target, Alea数値) Is Nothing Then Exit Sub
Dim AleaColor As Range
Set AleaColor = Range("A4:A9")
Dim Rng As Range
Dim Color As Long
For Each Rng In AleaColor
If Rng.Value = Target.Value Then
Color = Rng.Interior.Color
Target.Interior.Color = Color
Exit Sub
End If
Next Rng
End Sub
Sheet1モジュール用
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Alea数値 As Range
Set Alea数値 = Range("C4:C9")
If Intersect(Target, Alea数値) Is Nothing Then Exit Sub
Dim AleaColor As Range
Set AleaColor = Range("A4:A9")
Dim Rng As Range
Dim Color As Long
For Each Rng In AleaColor
If Rng.Value = Target.Value Then
Color = Rng.Interior.Color
Target.Interior.Color = Color
Exit Sub
End If
Next Rng
End Sub
272デフォルトの名無しさん (アウアウウー Sa1b-jxZb)
2021/04/17(土) 07:46:50.44ID:fydw5HpOa273デフォルトの名無しさん (ワッチョイ 9fda-tdH6)
2021/04/17(土) 07:47:30.68ID:IoVEY+h40274デフォルトの名無しさん (JP 0H4f-V0/V)
2021/04/17(土) 08:50:15.05ID:xdZBdiobH >>271
いま見返したらAreaがAleaになってるな
いま見返したらAreaがAleaになってるな
275デフォルトの名無しさん (アウアウウー Sa1b-jxZb)
2021/04/17(土) 08:56:18.27ID:fydw5HpOa エクセルは1600万色もあるからどれが赤で黄色なのかわからない
262のように色見本があって、これが赤です。と決めてくれないと
262のように色見本があって、これが赤です。と決めてくれないと
276デフォルトの名無しさん (ワッチョイ 9f68-1iXq)
2021/04/17(土) 09:08:47.12ID:lNzUtf8u0 >275
EXCEL関係ない
EXCEL関係ない
277デフォルトの名無しさん
2021/04/17(土) 12:35:40.75 >>102,103
返信ありがとうございます。
input_str =〜 の()内にB2の文字列を貼付して出来ましたが、
input_str =〜
input_str =〜
と複数行にして試しましたが、複数行は出来ませんでした、どうすれば複数行処理可能になりますでしょうか?
返信ありがとうございます。
input_str =〜 の()内にB2の文字列を貼付して出来ましたが、
input_str =〜
input_str =〜
と複数行にして試しましたが、複数行は出来ませんでした、どうすれば複数行処理可能になりますでしょうか?
278デフォルトの名無しさん (ワッチョイ 57da-qGL9)
2021/04/17(土) 20:38:15.19ID:A+RmKR4F0 >>258
いや、ムービーメーカー4がわからないから、貰ってもわからないし。
コンボボックスって未選択の所?
UIAutomationじゃなくてもSendMessageで行けそうな気がするけど・・。
▼が何の文字を指定すればいいのかわからないって意味なら、
やっぱりFindAllで取得して、配列の何番目にそれっぽいのが入ってるか調べればいいと思うな。
いや、ムービーメーカー4がわからないから、貰ってもわからないし。
コンボボックスって未選択の所?
UIAutomationじゃなくてもSendMessageで行けそうな気がするけど・・。
▼が何の文字を指定すればいいのかわからないって意味なら、
やっぱりFindAllで取得して、配列の何番目にそれっぽいのが入ってるか調べればいいと思うな。
279デフォルトの名無しさん (ワッチョイ 9fda-tdH6)
2021/04/17(土) 20:55:43.60ID:IoVEY+h40 >>278
1日がかりでググりまくりの苦労と試行で出来た。
'コンボボックスを開いて折りたたむ
Dim ptnExpand As IUIAutomationExpandCollapsePattern
Set ptnExpand = elmYukkuri.GetCurrentPattern(UIA_ExpandCollapsePatternId)
ptnExpand.Expand
ptnExpand.Collapse
'コンボボックスの中身をセルA3に書き出す
Set elmYukkuri = elmYukkuri.FindFirst(TreeScope_Subtree, iCnd)
Set iCnd = uiAuto.CreatePropertyCondition(UIA_ClassNamePropertyId, "ListBoxItem")
Set elmsYukkuri = elmYukkuri.FindAll(TreeScope_Children, iCnd)
Set iCnd = uiAuto.CreatePropertyCondition(UIA_ClassNamePropertyId, "TextBlock")
For i = 0 To elmsYukkuri.Length - 1
Set elmYukkuri = elmsYukkuri.GetElement(i).FindFirst(TreeScope_Children, iCnd)
Cells(i + row_セリフ開始, 1).Value = i
Cells(i + row_セリフ開始, 2).Value = elmYukkuri.CurrentName
Next
1日がかりでググりまくりの苦労と試行で出来た。
'コンボボックスを開いて折りたたむ
Dim ptnExpand As IUIAutomationExpandCollapsePattern
Set ptnExpand = elmYukkuri.GetCurrentPattern(UIA_ExpandCollapsePatternId)
ptnExpand.Expand
ptnExpand.Collapse
'コンボボックスの中身をセルA3に書き出す
Set elmYukkuri = elmYukkuri.FindFirst(TreeScope_Subtree, iCnd)
Set iCnd = uiAuto.CreatePropertyCondition(UIA_ClassNamePropertyId, "ListBoxItem")
Set elmsYukkuri = elmYukkuri.FindAll(TreeScope_Children, iCnd)
Set iCnd = uiAuto.CreatePropertyCondition(UIA_ClassNamePropertyId, "TextBlock")
For i = 0 To elmsYukkuri.Length - 1
Set elmYukkuri = elmsYukkuri.GetElement(i).FindFirst(TreeScope_Children, iCnd)
Cells(i + row_セリフ開始, 1).Value = i
Cells(i + row_セリフ開始, 2).Value = elmYukkuri.CurrentName
Next
280デフォルトの名無しさん (ワッチョイ 9ff0-KAGY)
2021/04/18(日) 09:49:47.16ID:AhVY6Zxk0 し
281デフォルトの名無しさん (ワッチョイ 9ff0-KAGY)
2021/04/18(日) 09:56:40.54ID:AhVY6Zxk0 Private Sub Worksheet_Change(ByVal target As Range)
If Intersect(target, Range("A1:A2")) Is Nothing Then
Exit Sub
End If
ClearDates
UpdateDates
End Sub
Sub ClearDates()
Range("A4:A999").Clear
End Sub
Sub UpdateDates()
If IsDate(Range("A1").Value) = False Or IsDate(Range("A2").Value) = False Then
MsgBox "日付を正しく入力してください"
Exit Sub
End If
Dim d As Date, endDate As Date
d = Range("A1").Value
endDate = Range("A2").Value
Dim y As Long
y = 4
Do While d <= Range("A2").Value
Cells(y, 1) = d
d = d + 1
y = y + 1
Loop
End Sub
日付間の日にちが自動で打ちあがるようにしたんですけど
めちゃくちゃ重くてパソコンが固まってしまいますご教授ください
素人みたいな質問ですいません。
If Intersect(target, Range("A1:A2")) Is Nothing Then
Exit Sub
End If
ClearDates
UpdateDates
End Sub
Sub ClearDates()
Range("A4:A999").Clear
End Sub
Sub UpdateDates()
If IsDate(Range("A1").Value) = False Or IsDate(Range("A2").Value) = False Then
MsgBox "日付を正しく入力してください"
Exit Sub
End If
Dim d As Date, endDate As Date
d = Range("A1").Value
endDate = Range("A2").Value
Dim y As Long
y = 4
Do While d <= Range("A2").Value
Cells(y, 1) = d
d = d + 1
y = y + 1
Loop
End Sub
日付間の日にちが自動で打ちあがるようにしたんですけど
めちゃくちゃ重くてパソコンが固まってしまいますご教授ください
素人みたいな質問ですいません。
282デフォルトの名無しさん (ワッチョイ 9f3d-0PWy)
2021/04/18(日) 10:09:03.12ID:CdbHG8Q+0 >>281
Changeイベントをする時は、
処理の前で
Application.EnableEvents=False
処理の後で
Application.EnableEvents=True
が動くようにしないと延々Changeイベントが動いて重くなる
Changeイベントをする時は、
処理の前で
Application.EnableEvents=False
処理の後で
Application.EnableEvents=True
が動くようにしないと延々Changeイベントが動いて重くなる
283デフォルトの名無しさん (ワッチョイ 9f68-1iXq)
2021/04/18(日) 10:09:19.29ID:a83COmqy0 >>281
むしろそれでプロだったらびびるけど・・・
Worksheet_Change()はワークシートの内容が変わった時に発火する
Worksheet_Change()→ClearDates()→Worksheet_Change()→UpdateDates()→Worksheet_Change()→・・・
多分無限ループになっている
こういう時はイベントを無効にしておけば無限ループにならない
Private Sub Worksheet_Change(ByVal target As Range)
object.EnableEvents = false
'内容
object.EnableEvents = true
endsub
むしろそれでプロだったらびびるけど・・・
Worksheet_Change()はワークシートの内容が変わった時に発火する
Worksheet_Change()→ClearDates()→Worksheet_Change()→UpdateDates()→Worksheet_Change()→・・・
多分無限ループになっている
こういう時はイベントを無効にしておけば無限ループにならない
Private Sub Worksheet_Change(ByVal target As Range)
object.EnableEvents = false
'内容
object.EnableEvents = true
endsub
284デフォルトの名無しさん (ワッチョイ 9f68-1iXq)
2021/04/18(日) 10:09:41.04ID:a83COmqy0 すまん、Application.EnableEvents = Falseだった上に遅かった
285デフォルトの名無しさん (ワッチョイ 9ff0-B9Cj)
2021/04/18(日) 10:53:16.67ID:AhVY6Zxk0 すばやい返答ありがとうございます
少し早くてびっくり
VBAははじめて2年ぐらいです
5年後ぐらいにプロになれたらいいな
Private Sub Worksheet_Change(ByVal target As Range)
object.EnableEvents = false
上記を先頭2行と置き換えて
object.EnableEvents = true
endsub
↑この2行は最終行に書けばいいのですか?
素人ですいません!
少し早くてびっくり
VBAははじめて2年ぐらいです
5年後ぐらいにプロになれたらいいな
Private Sub Worksheet_Change(ByVal target As Range)
object.EnableEvents = false
上記を先頭2行と置き換えて
object.EnableEvents = true
endsub
↑この2行は最終行に書けばいいのですか?
素人ですいません!
286デフォルトの名無しさん (JP 0Hbb-tdH6)
2021/04/18(日) 11:21:49.65ID:JCpiu5BAH >>285
直す部分だけ書くと、こう
Private Sub Worksheet_Change(ByVal target As Range)
Application.EnableEvents = False
If Intersect(target, Range("A1:A2")) Is Nothing Then
Exit Sub
End If
ClearDates
UpdateDates
Application.EnableEvents = True
End Sub
直す部分だけ書くと、こう
Private Sub Worksheet_Change(ByVal target As Range)
Application.EnableEvents = False
If Intersect(target, Range("A1:A2")) Is Nothing Then
Exit Sub
End If
ClearDates
UpdateDates
Application.EnableEvents = True
End Sub
287デフォルトの名無しさん (ワッチョイ b768-1iXq)
2021/04/18(日) 12:11:13.84ID:ORj5XeNB0288デフォルトの名無しさん (ワッチョイ 9ff0-B9Cj)
2021/04/18(日) 14:57:21.70ID:AhVY6Zxk0 先生たちありがとうございます!
新設丁寧頭もいい
新設丁寧頭もいい
289デフォルトの名無しさん (ワッチョイ 9ff0-B9Cj)
2021/04/18(日) 14:58:49.68ID:AhVY6Zxk0 自分の力で解決できるようにがんばります!
290デフォルトの名無しさん (ワッチョイ 7701-ubdj)
2021/04/18(日) 16:07:16.06ID:c/Nu40gb0 >>281
それコピペして動かしてみたけど全然重くなかったよ
1900年から今日までにしても4秒くらい
これで固まるのは別の原因があると思う
その場所以外にとても複雑な計算式があって
Cells(y, 1) = d の度に計算して重くなってるとか
そうであれば計算を手動に変えて最後に自動にするとか
セルじゃなくて配列にdを入れて最後に一回だけ出力するとか
UpdateDates()を1行ずつ動かせばどの行で固まってるか分かると思うよ
それコピペして動かしてみたけど全然重くなかったよ
1900年から今日までにしても4秒くらい
これで固まるのは別の原因があると思う
その場所以外にとても複雑な計算式があって
Cells(y, 1) = d の度に計算して重くなってるとか
そうであれば計算を手動に変えて最後に自動にするとか
セルじゃなくて配列にdを入れて最後に一回だけ出力するとか
UpdateDates()を1行ずつ動かせばどの行で固まってるか分かると思うよ
291デフォルトの名無しさん (アウアウウー Sa1b-0PWy)
2021/04/18(日) 16:21:48.14ID:n1x9QJALa >>290
それはChangeイベントで検証しましたか?
それはChangeイベントで検証しましたか?
292デフォルトの名無しさん (スプッッ Sd3f-RZ4F)
2021/04/18(日) 19:37:56.63ID:Z7m7Dr1xd >>261
ありがとうございます。試してみます。
ありがとうございます。試してみます。
293デフォルトの名無しさん (ワッチョイ 7701-ubdj)
2021/04/18(日) 20:47:27.38ID:c/Nu40gb0294デフォルトの名無しさん (ワッチョイ 57da-tdH6)
2021/04/18(日) 23:15:06.97ID:FAQ+sCCd0 https://i.imgur.com/8OFf7Pv.jpg
B4:E6を画像として出力したいんだけど、Rangeの範囲指定をどういじっても、B3:E6が出力されてしまう。
B4:C6を指定してもB3:E6が出力されてしまう。
どうすればいいの?
B4:E6を画像として出力したいんだけど、Rangeの範囲指定をどういじっても、B3:E6が出力されてしまう。
B4:C6を指定してもB3:E6が出力されてしまう。
どうすればいいの?
295デフォルトの名無しさん (JP 0Hbb-tdH6)
2021/04/19(月) 00:55:03.43ID:BhG1xyLeH >>294
CurrentRegionを使わない
CurrentRegionを使わない
296デフォルトの名無しさん (ワッチョイ b7da-tdH6)
2021/04/19(月) 01:56:46.57ID:/e3Iiylf0297デフォルトの名無しさん (ワッチョイ bf7c-mkHL)
2021/04/19(月) 10:20:37.00ID:gkbaJTWH0 Name As でExcel以外のJpegファイル等のファイル名を変えることができると思いますが、そもそもなんでEXCELで他のソフトウェアのファイル名変えられるんでしょ?
便利だからいいんですけど
便利だからいいんですけど
298デフォルトの名無しさん (JP 0Hbb-tdH6)
2021/04/19(月) 10:27:18.04ID:BhG1xyLeH299デフォルトの名無しさん (ワッチョイ bf7c-mkHL)
2021/04/19(月) 10:41:44.29ID:gkbaJTWH0 そっか、OSを操作してるんでしたね
EXCELもOSも同じメーカーだからこそできる技なんですな
EXCELもOSも同じメーカーだからこそできる技なんですな
300デフォルトの名無しさん (ワッチョイ 778e-u7Bp)
2021/04/19(月) 21:03:08.15ID:K5RFczke0 >>299
馬鹿?
馬鹿?
301デフォルトの名無しさん (ワンミングク MM7f-wYoi)
2021/04/19(月) 21:19:11.87ID:80cIHSk1M >>299
知能に問題がある人かな
知能に問題がある人かな
302デフォルトの名無しさん (ワッチョイ 9fe6-tdH6)
2021/04/19(月) 21:54:25.72ID:zOv5i/QS0 昔のExcelは非公開API使ってたとか噂を聞いたことがある
303デフォルトの名無しさん (アウアウウー Sa1b-CpDH)
2021/04/19(月) 23:09:31.11ID:Qr9ctU7Wa 噂を信じるな
304デフォルトの名無しさん (アウアウウー Sa1b-jxZb)
2021/04/19(月) 23:15:55.48ID:NSiRzHFAa なつかしいなぁ 90年から2000年ぐらいの頃だな
305デフォルトの名無しさん (ワッチョイ 9f90-ubdj)
2021/04/20(火) 00:42:55.05ID:LQ8i77JG0 あるシートをコピーした時、
「移動またはコピーしようとしている数式またはシートには、移動またはコピー先のワークシートに既にある名前’○○○’が含まれています。この名前を使用しますか?」
が延々と出てくるのがうざいので、
メッセージを出さないようにするマクロって作れますか?
事前に名前の定義から削除するのではなく、シートをコピーしたら、メッセージを出さずに名前の定義を削除したいです。
詳しい方、ご教示をよろしくお願いいたします。
「移動またはコピーしようとしている数式またはシートには、移動またはコピー先のワークシートに既にある名前’○○○’が含まれています。この名前を使用しますか?」
が延々と出てくるのがうざいので、
メッセージを出さないようにするマクロって作れますか?
事前に名前の定義から削除するのではなく、シートをコピーしたら、メッセージを出さずに名前の定義を削除したいです。
詳しい方、ご教示をよろしくお願いいたします。
306デフォルトの名無しさん (ワッチョイ 9fad-B9Iy)
2021/04/20(火) 01:37:22.55ID:ptbZPsIm0 書式設定をコピーしなくて良いなら配列に値を代入して新しいシートに貼り付けが楽じゃない?
書式もって言うなら出力後に書式だけコピーしてやるとか
書式もって言うなら出力後に書式だけコピーしてやるとか
307デフォルトの名無しさん (ワッチョイ 9f3d-0PWy)
2021/04/20(火) 07:08:37.93ID:j3U7nYtJ0 VBAで隠蔽使ってる人はどんな時に使ってますか?
ぶっちゃけPropertyGetだけでいい気がしてきてしまったので、適切な使い所を知りたいです
ぶっちゃけPropertyGetだけでいい気がしてきてしまったので、適切な使い所を知りたいです
308デフォルトの名無しさん (ワッチョイ 9f90-ubdj)
2021/04/20(火) 07:20:28.94ID:LQ8i77JG0309デフォルトの名無しさん (スフッ Sdbf-tdH6)
2021/04/20(火) 07:26:26.47ID:sns0znWgd >>307
二人以上で開発する時、または長期に渡るメンテが必要になりそうな時
二人以上で開発する時、または長期に渡るメンテが必要になりそうな時
310デフォルトの名無しさん (ワッチョイ b768-1iXq)
2021/04/20(火) 07:29:11.43ID:aQV8TqKv0311デフォルトの名無しさん (ササクッテロラ Sp8b-Xji8)
2021/04/20(火) 12:11:30.20ID:fqIzsxE3p >>307
メッセージングを行う際にて不必要と思われるメソッド(関数)や変数、プロパティは隠蔽する。
メッセージングを行う際にて不必要と思われるメソッド(関数)や変数、プロパティは隠蔽する。
312デフォルトの名無しさん (ササクッテロラ Sp8b-Xji8)
2021/04/20(火) 12:18:15.46ID:fqIzsxE3p いや?
そもそも変数はプロパティかメソッド(関数)の引数や戻り値でしか受け渡ししないから変数は隠蔽しないことは無いか
そもそも変数はプロパティかメソッド(関数)の引数や戻り値でしか受け渡ししないから変数は隠蔽しないことは無いか
313デフォルトの名無しさん (ワッチョイ ffda-tdH6)
2021/04/20(火) 12:27:20.11ID:WjARqIhg0 >>307
ぶっちゃけPropertyGetだけでいいです、他のことはやらなくていいです
ぶっちゃけPropertyGetだけでいいです、他のことはやらなくていいです
314デフォルトの名無しさん (ワッチョイ b768-1iXq)
2021/04/20(火) 18:45:51.60ID:aQV8TqKv0 変数を隠蔽しておけばgetter・setterを必ず通るからそこさえ監視しておけば後を追える
変数丸出しだとどこから触られるかわからないのでデバッグが死ぬほど大変になる
変数丸出しだとどこから触られるかわからないのでデバッグが死ぬほど大変になる
315デフォルトの名無しさん (アウアウウー Sa1b-jxZb)
2021/04/20(火) 19:02:40.74ID:grfVULwwa みんなが使うのはパブリック
自分だけで使いたいときはプライベート
XとかY,Zなんかはプライベートにしましょう
自分だけで使いたいときはプライベート
XとかY,Zなんかはプライベートにしましょう
316デフォルトの名無しさん (アウアウウー Sa1b-jxZb)
2021/04/20(火) 19:16:00.04ID:grfVULwwa たんじゅんに
プライベートなら3文字以下
パブリックは5文字以上
そう決めておけばよいよ
プライベートなら3文字以下
パブリックは5文字以上
そう決めておけばよいよ
317デフォルトの名無しさん (アウアウウー Sa1b-CpDH)
2021/04/20(火) 20:06:43.69ID:f6iXtgoua >>314
デバッグなんかやんないくせに
デバッグなんかやんないくせに
318デフォルトの名無しさん (ワッチョイ ff10-wmn0)
2021/04/20(火) 21:17:43.05ID:teqpRJSw0 人の書いたコードなんて読めない
自分で書いても1ヶ月後には読めない
自分で書いても1ヶ月後には読めない
319デフォルトの名無しさん (ワッチョイ 9f4f-Xji8)
2021/04/20(火) 21:32:16.88ID:N2s7rCY20 >>318
人が書いたコードは兎も角
自分の書いたコードが読めないのはちょっとね
上からつらつらと書くんじゃなくて
小さな部品から作って
組み合わせて大きな部品を作って
更に組み合わせて・・・みたいに書くと
分かり易いコードを書けるよ
逆に誰が読んでも分かり易いコードが
書けるようになったらもうすぐVBA卒業だよ
人が書いたコードは兎も角
自分の書いたコードが読めないのはちょっとね
上からつらつらと書くんじゃなくて
小さな部品から作って
組み合わせて大きな部品を作って
更に組み合わせて・・・みたいに書くと
分かり易いコードを書けるよ
逆に誰が読んでも分かり易いコードが
書けるようになったらもうすぐVBA卒業だよ
320デフォルトの名無しさん (アウアウウー Sa1b-jxZb)
2021/04/20(火) 21:33:10.03ID:grfVULwwa 文章のきほんは5w1H
321デフォルトの名無しさん (ワッチョイ ffb3-pj+b)
2021/04/21(水) 00:03:03.35ID:VYKRrHWq0 現場のためにマクロ作ってて
性能確認は現場に投げてるけど
どういう処理をしてるとか一切考慮してなくて正常な処理をバグ言われてちょっと辛い
わかる人いる?
性能確認は現場に投げてるけど
どういう処理をしてるとか一切考慮してなくて正常な処理をバグ言われてちょっと辛い
わかる人いる?
322デフォルトの名無しさん (ワッチョイ 778e-u7Bp)
2021/04/21(水) 00:28:41.53ID:mZ1GtAH60 わかる。仕様も確定できない馬鹿だと。
323デフォルトの名無しさん (ワッチョイ ffb3-pj+b)
2021/04/21(水) 00:48:54.24ID:VYKRrHWq0 すごく突っ込みたいけどかなーり年上のおじいちゃんばっかでちょっと言いづらかったり
ありがとう、ちょっと楽になった
明日ガツンと言ってやる(笑)
ありがとう、ちょっと楽になった
明日ガツンと言ってやる(笑)
324デフォルトの名無しさん (ワッチョイ ffda-tdH6)
2021/04/21(水) 02:31:17.44ID:QPNAyMuU0325デフォルトの名無しさん (ワッチョイ b710-uGOB)
2021/04/21(水) 04:00:51.54ID:KhV9jsbh0 正常な処理なら伝えりゃいいだけだろ
MsgBox出すなり、シートに書いとくなり、口で言うなりして
MsgBox出すなり、シートに書いとくなり、口で言うなりして
326デフォルトの名無しさん (アウアウウー Sa1b-jxZb)
2021/04/21(水) 11:09:16.06ID:aZ4kV5qwa わからんものを説明するときは5w1hでよいから
聞いているほうも分かった気になる
聞いているほうも分かった気になる
327デフォルトの名無しさん (ブーイモ MMbb-B9Iy)
2021/04/21(水) 12:00:56.40ID:TWzI1JIsM エラーメッセージ出そうが絵本みたいなマニュアル作ろうが「ちゃんと動かないぞ!ポンコツめ!」って騒ぐオヤジがおる。んでよくよく聞いてみたらメッセージは読まずに閉じるわマニュアルは開くことすらしてねぇわ日付入力しろって書いてある項目に「多分5/10」とか書いてくれちゃうわであぁ何やっても無駄な時は無駄なんだなぁってなった事が何度もある
328デフォルトの名無しさん (ワッチョイ 9f4f-Xji8)
2021/04/21(水) 12:37:02.29ID:BXHy+8up0 >>327
直接お客さんとやり取りしてるの?
そうで無ければ上司か島のリーダーさんに
中間に入ってもらえば?
もし直接お客さんとやり取りしているなら
そもそもプログラマーとお客さんが
窓口も介さず直接やり取りを行う
形態自体に問題があると思うけど
リーダーさんとか上司に相談するべき
もっとも、自分がその窓口ですと言うのなら
最初っからどこをどうして欲しいか
よーく聞いてから作る方がいい。
どうせ用件定義書なんて存在して
いないんでしょ?
直接お客さんとやり取りしてるの?
そうで無ければ上司か島のリーダーさんに
中間に入ってもらえば?
もし直接お客さんとやり取りしているなら
そもそもプログラマーとお客さんが
窓口も介さず直接やり取りを行う
形態自体に問題があると思うけど
リーダーさんとか上司に相談するべき
もっとも、自分がその窓口ですと言うのなら
最初っからどこをどうして欲しいか
よーく聞いてから作る方がいい。
どうせ用件定義書なんて存在して
いないんでしょ?
329デフォルトの名無しさん (アウアウウー Sa1b-jxZb)
2021/04/21(水) 14:00:48.01ID:aZ4kV5qwa おいおい、エクセルのマクロぐらいで定義書はつくらんだろ
ふつうはマクロができてからしようが決まるから
ふつうはマクロができてからしようが決まるから
330デフォルトの名無しさん (ゲマー MMdf-V0/V)
2021/04/21(水) 17:35:07.95ID:Gd/0Jck0M >>327
さすがにIsDateくらい使おうぜ
さすがにIsDateくらい使おうぜ
331デフォルトの名無しさん (オッペケ Sr8b-nOOc)
2021/04/21(水) 17:53:28.95ID:k6MIIAN/r 年配のジジイ騙して金取れるなら今の体制維持も考慮すべき
332デフォルトの名無しさん (ブーイモ MMcf-B9Iy)
2021/04/21(水) 18:25:58.81ID:2kwhHx0qM >>328
上司に頼まれて作った子会社の人達の作業進捗を確認する為のスケジュール管理ツールなんだ
今まで手書きでやってたのを電子化したかったんだと
要求仕様の箇条書きを渡されて好きに作っていいって言われたから仕様書とかコーディング規約とか諸々自分で用意した
まぁ流石に向こうの課長さんから当事者のおっちゃんに雷落ちたらしいが
>>330
流石に動作前に入力のエラーチェックはかけてるさ
それでlsDateでチェックして日付じゃなけりゃ処理を停止して「No.〇〇の工程の開始予定日が日付じゃねぇから書き直せ」って類のメッセージ出してるんだがメッセージ読んでねぇから「マトモに動かないポンコツツール」って喚き散らしてたんよ
上司に頼まれて作った子会社の人達の作業進捗を確認する為のスケジュール管理ツールなんだ
今まで手書きでやってたのを電子化したかったんだと
要求仕様の箇条書きを渡されて好きに作っていいって言われたから仕様書とかコーディング規約とか諸々自分で用意した
まぁ流石に向こうの課長さんから当事者のおっちゃんに雷落ちたらしいが
>>330
流石に動作前に入力のエラーチェックはかけてるさ
それでlsDateでチェックして日付じゃなけりゃ処理を停止して「No.〇〇の工程の開始予定日が日付じゃねぇから書き直せ」って類のメッセージ出してるんだがメッセージ読んでねぇから「マトモに動かないポンコツツール」って喚き散らしてたんよ
333デフォルトの名無しさん (アウアウウー Sa1b-jxZb)
2021/04/21(水) 19:16:43.30ID:aZ4kV5qwa 中抜きの現場をそのまま見ているような
人の入力チェックはけっこうノウハウいるのね
人の入力チェックはけっこうノウハウいるのね
334デフォルトの名無しさん (アウアウウー Sa1b-jxZb)
2021/04/21(水) 19:18:54.99ID:aZ4kV5qwa 進捗管理ツールてまともな奴はみたことがない
335デフォルトの名無しさん (アウアウウー Sa1b-CpDH)
2021/04/21(水) 20:16:57.95ID:ukt/rEUCa 文句いわれた程度で逆ギレかやっぱゆとりだな
336デフォルトの名無しさん (ワッチョイ 778e-u7Bp)
2021/04/21(水) 20:18:22.64ID:mZ1GtAH60 >>332
やっぱり馬鹿か
やっぱり馬鹿か
337デフォルトの名無しさん (ワッチョイ 9f4f-Xji8)
2021/04/21(水) 21:08:21.14ID:BXHy+8up0 >>332
なるほど大体状況は理解出来た
まぁボロくそに言ってたおっちゃんもおっちゃんだけど、果たして君の作ったツールは
今まで手書きでやってた人がいきなりパソコン使って打ち込めるような優しい設計になっていたのかな?
下請けでしかもスケジューラー作成なんて自由度の高いものを上司が君に振ったのはひょっとしたらその辺の事も兼ねて
君が今回それを通してどんなことを学ぶかを見ていた可能性があるね。
そのおっちゃんはボロくそに言ったかも知れないけどそれが現場で作業している人の正直な意見であることには間違いないよ。厳しいかも知れないけどね。
なるほど大体状況は理解出来た
まぁボロくそに言ってたおっちゃんもおっちゃんだけど、果たして君の作ったツールは
今まで手書きでやってた人がいきなりパソコン使って打ち込めるような優しい設計になっていたのかな?
下請けでしかもスケジューラー作成なんて自由度の高いものを上司が君に振ったのはひょっとしたらその辺の事も兼ねて
君が今回それを通してどんなことを学ぶかを見ていた可能性があるね。
そのおっちゃんはボロくそに言ったかも知れないけどそれが現場で作業している人の正直な意見であることには間違いないよ。厳しいかも知れないけどね。
338デフォルトの名無しさん (ゲマー MM4f-V0/V)
2021/04/22(木) 07:33:17.38ID:7heM3Ej5M まあVBAじゃなくとも自分が便利だと思っている価値観を人に理解してもらうのは難しい
339デフォルトの名無しさん (アウアウクー MM8b-pIuX)
2021/04/22(木) 09:34:46.13ID:gwtiqwMsM340デフォルトの名無しさん (ワッチョイ ffda-CpDH)
2021/04/22(木) 12:44:53.98ID:hcaPQHcf0 自分の給料がどこから来るのかを考えれば適当な対応はできないとおもうが
341デフォルトの名無しさん (ワッチョイ d7b1-4RQ2)
2021/04/22(木) 17:31:38.77ID:voAAUW4i0 VBAでは非0は真として扱われるということでいいですか?
342デフォルトの名無しさん (ワッチョイ 9f4f-Xji8)
2021/04/22(木) 17:54:34.03ID:aG329xgw0 >>341
型による
型による
343デフォルトの名無しさん (ワッチョイ d7b1-4RQ2)
2021/04/22(木) 18:05:18.29ID:voAAUW4i0 >>342
整数です
整数です
344デフォルトの名無しさん (ワッチョイ d7b1-4RQ2)
2021/04/22(木) 18:08:01.13ID:voAAUW4i0 あーけど
エラー値も判定の対象になるかもです
エラー値も判定の対象になるかもです
345デフォルトの名無しさん (ワッチョイ d7b1-4RQ2)
2021/04/22(木) 18:25:55.35ID:voAAUW4i0 ごめんなさい回りくどい質問せずに
直球で質問すると
if instr(str1,str2)>0 then
の>0って要らなくないか?ってことです
直球で質問すると
if instr(str1,str2)>0 then
の>0って要らなくないか?ってことです
346デフォルトの名無しさん (ワッチョイ 9f4f-Xji8)
2021/04/22(木) 18:47:47.49ID:aG329xgw0 >>345
やめとけ。まずInstrで何が返ってくるのか確認するんだ
http://officetanaka.net/excel/vba/function/instr.htm
NULLが入って来ることもあるからLEN関数で囲む感じになるのか?
どちらにしても可読性が落ちるようなものやトリッキーなことはなるべく避けた方がいい
そんなこと全般に渡ってやってたら
1月後には自分が作ったソースが読めなくなるぞ
やめとけ。まずInstrで何が返ってくるのか確認するんだ
http://officetanaka.net/excel/vba/function/instr.htm
NULLが入って来ることもあるからLEN関数で囲む感じになるのか?
どちらにしても可読性が落ちるようなものやトリッキーなことはなるべく避けた方がいい
そんなこと全般に渡ってやってたら
1月後には自分が作ったソースが読めなくなるぞ
347デフォルトの名無しさん (アウアウウー Sa1b-jxZb)
2021/04/22(木) 19:10:26.59ID:+FKRqhM4a うむ
理系のひとはなんでも yes/Noで考えががちだけと
そういう論理式はむつかしい
現実にはyes/No/無回答 /cancelの4値だから
それに否定<>もあまり多用しないほうがよい
A<>false or B<>false or C<>false
こういうのわけわからんから
IF A=true and B=true and C=true then
else
×××××××
ENDIF
こうしておく、終電に間に合うぞ
理系のひとはなんでも yes/Noで考えががちだけと
そういう論理式はむつかしい
現実にはyes/No/無回答 /cancelの4値だから
それに否定<>もあまり多用しないほうがよい
A<>false or B<>false or C<>false
こういうのわけわからんから
IF A=true and B=true and C=true then
else
×××××××
ENDIF
こうしておく、終電に間に合うぞ
348デフォルトの名無しさん (JP 0Hbb-tdH6)
2021/04/22(木) 19:52:34.43ID:UidQzhn6H349デフォルトの名無しさん (スププ Sdbf-wmn0)
2021/04/22(木) 21:01:52.31ID:hn+92ycNd 理系文系家系関係あるかそれ
350デフォルトの名無しさん (アウアウウー Sa1b-DjtJ)
2021/04/22(木) 23:02:56.56ID:vfns6Sdda VBAでは問題ないのだろうけど、TRUE をイコールで判定するのはどうも…
351デフォルトの名無しさん (ワッチョイ d7b1-4RQ2)
2021/04/22(木) 23:11:41.16ID:voAAUW4i0 ありがとうございます
素直に省略せずに比較演算子を使うことにします
素直に省略せずに比較演算子を使うことにします
352デフォルトの名無しさん (アウアウウー Sab5-4hJQ)
2021/04/23(金) 01:03:06.83ID:ftZ+9Vdga >>349
体育会系もついか
体育会系もついか
353デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/23(金) 04:16:22.24ID:IAv7U8Ah0 >>350
そうだね
まぁそういうときによく話に上がるコードだけども
Dim A As Boolean
Dim B As Boolean
Dim C As Boolean
A = False
B = False
C = False
A = B = C
こんなコードがあったとして
VBAではこれはエラーにならない
慣れてる人ならAにTrueが入ることが
すぐ分かるけど
慣れていない人はAにFalseが入ると
思ってしまうこともある
単純な式だから「そんなバカいねーよ」と
思うかも知れないけど
これを複雑な式に混ぜられた場合を考えると
結構キツいことになったりもするよ
そうだね
まぁそういうときによく話に上がるコードだけども
Dim A As Boolean
Dim B As Boolean
Dim C As Boolean
A = False
B = False
C = False
A = B = C
こんなコードがあったとして
VBAではこれはエラーにならない
慣れてる人ならAにTrueが入ることが
すぐ分かるけど
慣れていない人はAにFalseが入ると
思ってしまうこともある
単純な式だから「そんなバカいねーよ」と
思うかも知れないけど
これを複雑な式に混ぜられた場合を考えると
結構キツいことになったりもするよ
354デフォルトの名無しさん (ワッチョイ bd10-y5Lq)
2021/04/23(金) 05:12:18.96ID:Rqoeq7ma0 話の主旨が分からん
代入じゃないんだから「==」にしたいって話?
それならBooleanは関係ないよな…
代入じゃないんだから「==」にしたいって話?
それならBooleanは関係ないよな…
355デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/23(金) 05:41:22.55ID:IAv7U8Ah0356デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/23(金) 05:51:27.06ID:IAv7U8Ah0 手前側のイコールが代入で後ろのイコールが比較演算子だから他の言語だと
A = B == C;
みたいな書き方になったりするのかな
ただVBAではどっちもイコールひとつで分かり辛いから、その辺ちゃんと分かるように書いた方がいいよと言うのが話の趣旨だね
A = B == C;
みたいな書き方になったりするのかな
ただVBAではどっちもイコールひとつで分かり辛いから、その辺ちゃんと分かるように書いた方がいいよと言うのが話の趣旨だね
357デフォルトの名無しさん (JP 0H98-On6t)
2021/04/23(金) 06:24:58.47ID:TaQs1RgsH それは文法の話であって論理(式)の話ではないな
途中で混ざってすり変わってる
途中で混ざってすり変わってる
358デフォルトの名無しさん (ワッチョイ 3af0-3cD6)
2021/04/23(金) 06:27:12.51ID:P8K+Jhr50 5
359デフォルトの名無しさん (JP 0H98-On6t)
2021/04/23(金) 06:40:22.74ID:TaQs1RgsH a=b=cがすべて代入になる言語もあるからややこしいって話だと思うけど
手を抜かずに式を分けたりカッコを付ければいいだけ
コメントを書いたり変数名をわかりやすくするのと同列で、ミスを減らす工夫はプログラマーの義務
すべて代入したい時
b=c
a=b
比較したい時
a=(b=c)
手を抜かずに式を分けたりカッコを付ければいいだけ
コメントを書いたり変数名をわかりやすくするのと同列で、ミスを減らす工夫はプログラマーの義務
すべて代入したい時
b=c
a=b
比較したい時
a=(b=c)
360デフォルトの名無しさん (アウアウウー Sab5-4hJQ)
2021/04/23(金) 07:36:07.75ID:F+E5VVCoa プログラム上の論理式は2値論理がほとんどだから
じっさいは仕様によっていくらでも沢山あるからあるから
そういうのは丁寧にコメントをいくしかない
じっさいは仕様によっていくらでも沢山あるからあるから
そういうのは丁寧にコメントをいくしかない
361350 (アウアウウー Sa83-jiG2)
2021/04/23(金) 09:30:59.30ID:fSz9RP/oa 僕が言ったのは次のようなことです
VBAでいうと、True は -1 だが
Dim i As Long
i = 123
If i = True Then
はイコールと評価される
内部的には CBool(i) = True と評価されているのだと思う
C言語では TRUE は 1 と定義されていて、
int i = 123:
if (i == TRUE) {
では i を暗黙裡に論理型に変換しないので、イコールと評価されない(非0が真である直感に反する)
ということでした(123 と 1 を愚直に比較する)
FALSE は 0 と定義されていて、これは比較に用いてもよい
VBAでいうと、True は -1 だが
Dim i As Long
i = 123
If i = True Then
はイコールと評価される
内部的には CBool(i) = True と評価されているのだと思う
C言語では TRUE は 1 と定義されていて、
int i = 123:
if (i == TRUE) {
では i を暗黙裡に論理型に変換しないので、イコールと評価されない(非0が真である直感に反する)
ということでした(123 と 1 を愚直に比較する)
FALSE は 0 と定義されていて、これは比較に用いてもよい
362デフォルトの名無しさん (テテンテンテン MM34-TKdI)
2021/04/23(金) 09:32:37.82ID:ze7VlHimM363350 (アウアウウー Sa83-jiG2)
2021/04/23(金) 09:32:48.97ID:fSz9RP/oa 間違ってたらごめんなさい
364350 (アウアウウー Sa83-jiG2)
2021/04/23(金) 09:35:24.69ID:fSz9RP/oa a = b = c = 0
で、a、b、c すべてに 0 を代入したいとか
で、a、b、c すべてに 0 を代入したいとか
365デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/23(金) 09:46:20.67ID:IAv7U8Ah0 >>363
それで合ってるよ
ちなみに-1なのは変数の内容を
ビットとして見たとき全て立っていると
言うことの名残りだって
昔このスレの誰かが言ってた
もっとも今内部的にPコードで
ビットがどれか立っていればって
判断しているかは知らんけど
それで合ってるよ
ちなみに-1なのは変数の内容を
ビットとして見たとき全て立っていると
言うことの名残りだって
昔このスレの誰かが言ってた
もっとも今内部的にPコードで
ビットがどれか立っていればって
判断しているかは知らんけど
366デフォルトの名無しさん (JP 0H98-On6t)
2021/04/23(金) 09:48:01.57ID:TaQs1RgsH VBやVBAだと0だけがfalse、それ以外はみんなtrueとみなされる
たとえば
a = 100
If a Then
だとaはtrueになってIfの中が実行される
たとえば
a = 100
If a Then
だとaはtrueになってIfの中が実行される
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 毒親「働かないでいつもゴロゴロして!」俺「…」毒親「あっ近隣に熊が出たって!」俺「ふぅ」毒親「どこ行くんだ」
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 生活保護の受給額ってなんでこんなに安いの?
- お前らは“スカイマイルタワー”建設計画を知っているか?
- これ誰か分かるか?
- 支払い詰まってインターネット止まった
