work-731198_1920

1: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 04:39:17.907 ID:cJfy/88D0
10年前からつまづいてて今もつまづいてる


4: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 04:40:24.805 ID:Z4UpdHAd0
俺だっていまだに脳内の配列がぐちゃぐちゃになることある

5: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 04:40:35.418 ID:WxPThU0E0
使えなくてもやりたいこと実現できてるならよし

6: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 04:41:05.354 ID:cJfy/88D0
>>5
実現出来てないから困ってる

7: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 04:42:17.964 ID:GazhA7+D0
逆に何で躓いてんの?

8: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 04:43:40.593 ID:cJfy/88D0
型の問題と組み方の問題とサブの呼び出しと()の使い方
やればやるほどわからなくなるよ

9: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 04:43:58.512 ID:cMZSupzH0
俺もstream使いこなせなくてハゲる

11: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 04:46:26.777 ID:cJfy/88D0
vbs全ソースよ。Functionで構文エラー吐いてるんよ

Option Explicit
'テキストファイルに書き出す

Dim Input

Input = InputBox("開始数字を入力してください")
MsgBox (Input & "を入力しました。")

Do

Do Until Input > 1
If Input Mod 2 = 0 Then
Input = Input / 2

ElseIf Input Mod 2 = 1 Then
Input = ( 3 * Input ) + 1

ElseIf Input = 1 Then
Exit Do



OutputText Input
'テキストファイルへ出力
End if
Loop

Dim objFSO
Dim objText

Function OutputText(ByVal strMessage As String)
'ファイルシステムオブジェクト
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
'テキストファイルを開く
Set objText = objFSO.OpenTextFile("C:\Users\n\Desktop\コラッツマクロ\★結果★.txt", 8, True)

objText.write strMsg
objText.write vbCrLf

objText.close

'オブジェクト変数をクリア
Set objFSO = Nothing
Set objText = Nothing

End Function

14: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 04:50:04.653 ID:cMZSupzH0
vba分からないけど変数名は統一した方がいいよ
strMsgとstrMessageとか自動で補完してくれる高機能言語なのかもしれないけど読みにくい

16: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 04:52:11.193 ID:cJfy/88D0
>>14
そうだな統一しとくわ
脳ミソ高性能だから知らない間に勝手に指が使い分けちゃった/////

17: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 05:43:32.102 ID:cJfy/88D0
これならできるのに

Option Explicit
'テキストファイルに書き出す
Dim Input
Input = InputBox("開始数字を入力してください")
MsgBox (Input & "を入力しました。")

OutputText "テキストファイルに書き出すテストです"

'テキストファイルへ出力
Function OutputText(ByVal strMsg)

Dim objFSO
Dim objText

'ファイルシステムオブジェクト
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
'テキストファイルを開く
Set objText = objFSO.OpenTextFile("C:\Users\n\Desktop\コラッツマクロ\出力テスト.txt", 8, True)

objText.write strMsg
objText.write vbCrLf

objText.close

'オブジェクト変数をクリア
Set objFSO = Nothing
Set objText = Nothing

End Function

18: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 06:02:10.033 ID:cMZSupzH0
まだやってんのか
言語仕様わからんから
★とかいうふざけたの辞めるくらいしか思いつかんな

20: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 06:11:36.840 ID:cJfy/88D0
>>18
★は良いだろ

19: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 06:07:40.971 ID:W5uOkBEM0
As Stringで型指定してるにも関わらず数値型渡してるからじゃないの
構文エラーじゃないと思う

21: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 06:11:51.652 ID:cMZSupzH0
>>19
コレか

22: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 06:14:26.711 ID:cJfy/88D0
>>19
As Integerにしてもかわりましぇん

23: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 06:19:05.033 ID:W5uOkBEM0
>>22
そうじゃない
引数を文字列に変換しないとダメじゃないの
OutputText Cstr(Input) でいけるやろ

24: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 06:24:05.933 ID:cJfy/88D0
>>23
ごめんどこかわからんかったんよ
どこの行?

26: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 06:25:59.322 ID:W5uOkBEM0
>>24

何行目かわからけどここ↓

OutputText Input
'テキストファイルへ出力

28: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 06:30:48.505 ID:cJfy/88D0
>>26
ここその通り書き替えたんだけどまた構文エラー出る

29: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 06:32:00.591 ID:W5uOkBEM0
>>28
エラーの内容ぐらい貼れば

27: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 06:27:58.767 ID:W5uOkBEM0
Variant型ならよしなに暗黙変換やってくれるけど型指定したら面倒見てやらないとダメでしょ

30: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 06:35:56.577 ID:W5uOkBEM0
あーsも大文字か
CstrじゃなくてCStrだ

31: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 06:38:49.146 ID:cJfy/88D0
よいしょ!

IliQ7qK

32: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 06:40:14.246 ID:cJfy/88D0
またfunction差してる…
大文字とかにするまで追い付いてるよ

33: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 06:41:46.317 ID:cJfy/88D0
ByValがなんとなく使ってるんだけど
みんなから見て大丈夫だよね?

34: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 07:30:32.080 ID:cJfy/88D0
誰か助けて
★結果★も■結果■にするから!

35: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 07:40:57.602 ID:pr4TivJk0
do が2つあるのにloopが一個しかない

36: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 07:47:10.211 ID:cJfy/88D0
>>35
え?2つもあるか?

37: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 07:48:53.106 ID:cJfy/88D0
>>35
ほんとだった。ありがと

38: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 07:54:32.865 ID:cJfy/88D0
でもこれじゃ動かないことが判明したんだが原因がわからん

39: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 08:07:09.744 ID:pr4TivJk0
objFSOとobjTEXTのDimの位置は変えた?
>>17と同じ宣言位置にしないと

42: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 08:32:57.150 ID:cJfy/88D0
>>39
位置変えてあります

40: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 08:16:47.919 ID:8Cbg0vj80
てか値返さないならFunctionじゃなくてSubで宣言するやろ
エラーでint値返すとかならまだしも

42: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 08:32:57.150 ID:cJfy/88D0
>>40
全部の計算したの出力したいんよね

41: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 08:30:34.963 ID:cJfy/88D0
ソース書き込めないけど今ずっと0が出力されてる

44: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 08:35:20.871 ID:6pDKk+ydr
>>41
>>11をみる限り初期値0だと0のままで正しい動作だろ

45: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 08:36:37.594 ID:cJfy/88D0
>>44
えっ
初期値も何もログでいきなりテキストなるっ!

43: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 08:35:16.959 ID:cJfy/88D0
これで張れるか?
Option Explicit
'テキストファイルに書き出す

Dim Input

Input = InputBox("開始数字を入力してください")
MsgBox (Input & "を入力しました。")

Do

Do Until Input > 1
If Input Mod 2 = 0 Then
Input = Input / 2

ElseIf Input Mod 2 = 1 Then
Input = ( 3 * Input ) + 1

ElseIf Input = 1 Then
MsgBox("▲出力終了しました")
Exit Do

ElseIf Input = 0 Then
MsgBox("▲出力エラーとなりました")
Exit Do

End if

OutputText CStr(Input)
'テキストファイルへ出力

Loop
Loop

Function OutputText(ByVal strMsg)
'ファイルシステムオブジェクト

Dim objFSO
Dim objText

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
'テキストファイルを開く
Set objText = objFSO.OpenTextFile("C:\Users\n\Desktop\コラッツマクロ\■結果■.txt", 8, True)

objText.write StrMsg
objText.write vbCrLf

objText.close

'オブジェクト変数をクリア
Set objFSO = Nothing
Set objText = Nothing

End Function

46: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 09:27:15.945 ID:t9uuv2oX0
Do と Loop が二つある。最初の方 Do と後の方の Loop を消す。
以下を修正する。
>Do Until Input > 1
<Do While Input > 1
これでどうだ?

47: 以下、5ちゃんねるからVIPがお送りします 2020/11/07(土) 09:33:32.418 ID:cJfy/88D0
>>46
おお!できた!ありがとう!

Excel 2019/2016/2013 VBAプログラミング実践 (よくわかる)
富士通エフ・オー・エム株式会社 (FOM出版)(著)
(2020-03-24T00:00:01Z)
5つ星のうち4.5