2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

Excel詳しい人教えて!

1 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:28:21.013 ID:oJnHVTLR0.net
VBA初心者で
セルの数字 0.425 をtxtファイルに書き込みたいんだけど

print #1, str(ws.cells(22,n))

で実行すると .425って書き込まれちゃう

0.425って書き込むにはどうしたらいい?

2 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:28:53.320 ID:oJnHVTLR0.net
strは型が違いますって言われたからつけた

3 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:28:58.726 ID:I9ELIS8Fd.net
VLOOKUP

4 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:29:23.584 ID:TDk+GcE10.net
テキストファイル開いて0書き込めば解決

5 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:29:29.120 ID:oJnHVTLR0.net
ws.は意味わからんけど参考にしたサイトで書いてたからそのまま書いてる

6 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:30:03.802 ID:oJnHVTLR0.net
>>4
0のあるはずだったところにスペースが入ってて困る

7 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:30:28.394 ID:Tqpysdlya.net
セルの形式を標準じゃなくて文字列にする

8 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:30:53.619 ID:WnOpnysW0.net
format使え

9 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:31:03.264 ID:oJnHVTLR0.net
>>7
すまん
初心者にはわからん
関数で書いて見てもらえない?

10 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:31:35.863 ID:oJnHVTLR0.net
>>8
フォーマット関数っていうのがあるの?
初心者だからもう少し簡単に頼む

11 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:32:08.596 ID:Tqpysdlya.net
>>9
ホームタブに表示形式のプルダウンがあるべさ
今何になってるか知らんけど
まぁ解決できるか知らんけど

12 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:32:27.346 ID:fKNKQhEe0.net
1未満は頭に1をくっつければ

13 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:33:29.178 ID:Tqpysdlya.net
それか0.425と書いてるセルの先頭に‘を入れるとか

14 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:35:10.955 ID:VGO38Fpd0.net
テキスト開いてスペース消して0入れれば解決

15 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:36:23.427 ID:KRWZ7TB2a.net
スペースを0に置換すればオケ

16 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:38:35.774 ID:oJnHVTLR0.net
>>14-15
それは無理

17 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:39:31.132 ID:oJnHVTLR0.net
スペースはスペースでtxtファイルには必要な要素だし
手作業での後処理するならVBAの意味がない

18 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:39:59.431 ID:oJnHVTLR0.net
フォーマット関数使ってみようとしたけどコンパイルエラーでてうまくいかん

19 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:40:17.386 ID:ECqoJ+gu0.net
うろ覚えだけど
format(値, "0.000")
という感じだったかも

20 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:42:51.538 ID:oJnHVTLR0.net
>>19
調べてその値欄に>>1のws.なんちゃら
入れようとしたんだけどコンパイルエラーになる

21 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:43:30.911 ID:oJnHVTLR0.net
>>11
あと、これは効果なかったわ

22 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:44:58.997 ID:oJnHVTLR0.net
この時間はExcelまともに使える人は仕事してるから無理なのかね

23 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:47:05.356 ID:oJnHVTLR0.net
コンパイルエラーはカッコの数足りてなかっただけっぽい

24 :以下、\(^o^)/でVIPがお送りします:2021/06/22(火) 15:47:07.141 ID:o7Vftq8T0.net
コード貼れば?

25 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:47:19.589 ID:oJnHVTLR0.net
けど、残念ながら効果はなかったわ

26 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:48:15.444 ID:CrHaq+SK0.net
黙ってコード貼れゴミ

27 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:48:21.423 ID:tzO5/Rqf0.net
TypeName(str(ws.cells(22,n)))じゃダメ?

28 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:49:12.523 ID:oJnHVTLR0.net
>>24,26
コード自体は多少ループとかはあるけど>>1のまんまだよ

29 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:49:49.786 ID:FATxT/DXr.net
戻り値の型と引数の型合ってなきゃ動かんわな

30 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:50:46.099 ID:CrHaq+SK0.net
>>28
もういいわ言われたことそのままできんなら一生解決しねーよ

31 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:51:03.420 ID:oJnHVTLR0.net
>>30
口だけ番長かよ

32 :以下、\(^o^)/でVIPがお送りします:2021/06/22(火) 15:51:15.868 ID:o7Vftq8T0.net
wsはちゃんと対象のシートを読み込んでるのか?
途中で別のブックやシート開いたりしてないか?

33 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:52:27.895 ID:CrHaq+SK0.net
>>31
だからコードそのまま貼れって言ってんのにやってないのお前だろ?
プログラムって一行ですべてが解決すると思ってんの?変数の型は?どこに書いてあんの?シートの文字列の形式は?
頭わりーんだから頭良いやつの指示に従えよ無能w

34 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:52:51.393 ID:oJnHVTLR0.net
>>32
それは問題ない
他の348.524426みたいなのはそのまま書き込めてる
0.5245みたいなのだけうまくいかない

35 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:53:07.620 ID:t955hIfE0.net
ああ俺仕事でこれと全く同じことやったことあるわ
客先が.txtで見たいとか言い出して実装したやつ

36 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:53:46.040 ID:CrHaq+SK0.net
頭悪い癖にプライド高い指示に素直に従えない無能ってまじで今後やってけないよ、アドバイスね、これ

37 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:53:47.341 ID:oJnHVTLR0.net
>>33
で具体的にどの変数の方を知りたいわけ?

38 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:54:21.080 ID:SuiF0THC0.net
CDbl(ws.cells(22,n)) だとどうなる?

39 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:54:34.447 ID:uP0RdYJa0.net
>>33
詳しくないなら書き込まないほうがいいよ

40 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:54:53.993 ID:tzO5/Rqf0.net
>>20
strでくくってもだめなの?

41 :以下、\(^o^)/でVIPがお送りします:2021/06/22(火) 15:54:59.219 ID:o7Vftq8T0.net
>>34
じゃあ単純に文字列として取得できてないだけのようだな
Formatは何も変わらなかったの?
頭の大文字注意な

42 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:55:27.301 ID:ECqoJ+gu0.net
まじか
format関数が効かないなら俺の知識では無理だ

43 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:55:47.185 ID:oJnHVTLR0.net
スマホで書き込んでるからはんのめんどくさいんだよ

>>40
それは>>1の時点でやってるけどダメなんだよね

44 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:57:28.311 ID:ECqoJ+gu0.net
てかstrって関数使ったことないなcstrなら使ったりしてた

45 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:58:09.006 ID:aosT1drA0.net
strって文字列型だからいけないんじゃないの
数値型にしたうえで>>19やれば良さそうなもんだが

46 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:58:24.923 ID:oJnHVTLR0.net
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets(2)

Dim datFile As String
datFile = ActiveWorkbook.Path & "\data.txt"

Open datFile For Output As #1
Dim n
For n = 2 To 5
Print #1, "C " + ws.Cells(22, n).Value
Print #1, " " + ws.Cells(23, n) + "TP = " + Str(Format(ws.Cells(8, n), "0.000")) + "*1000000.0"

47 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:58:32.512 ID:FATxT/DXr.net
だから型が違うって言ってんだろ

48 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:58:38.485 ID:SuiF0THC0.net
だから>>38やって結果を教えろ
Str(CDbl(〜)) じゃないといけないかもしれんが

49 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:59:23.317 ID:oJnHVTLR0.net
>>33
はやく答えおしえろよ雑魚

50 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:59:27.393 ID:SuiF0THC0.net
>>46
なんでFormatした後にStrしてるんだ?

51 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 15:59:45.278 ID:oJnHVTLR0.net
>>48
ごめんコード貼るのに忙しかったやってみる

52 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:00:50.580 ID:SuiF0THC0.net
ちなみに最初に空白が要らないならStrではなくCStrを使え

53 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:01:56.517 ID:oJnHVTLR0.net
>>50
入れ替えたらできたわ
すまんありがとう

54 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:02:31.335 ID:tzO5/Rqf0.net
>>46
これだとエラー出るよね?

文字列と数字で計算しようとしてない?

55 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:03:18.894 ID:oJnHVTLR0.net
>>52
あぁこの空白strのせいだったのか
全部cstrに変えるわ
詳しいなあんたほんと助かる

56 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:04:22.157 ID:oJnHVTLR0.net
>>54
エラーは出なかったけど
順序間違えてて
入れ替えたらできたよ
ありがとう

57 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:04:30.341 ID:SuiF0THC0.net
>>53
いやStrそのものが要らんはず

58 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:06:24.961 ID:oJnHVTLR0.net
>>57
そうなの?なしだと型が違いますってエラーメッセージ出ちゃったからたしたんだけど

59 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:09:23.146 ID:d6PgldkJa.net
>>58
wsがなんなのかわからんけど
該当するセルが決まってるならRange(“a2”)とかでいいんじゃないの?

60 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:09:50.278 ID:SuiF0THC0.net
>>58
Str(Format(〜でもFormat(Str(〜でも動くなら大丈夫そうなんだがなぁ……

61 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:10:28.115 ID:SuiF0THC0.net
VBAは変数に型がないように見えて実際には内部型次第で挙動がいろいろ変わるから、そのへんを正しく理解しないといけない
恐らくはセルの中に元々文字列型で".425"が入っていたので、文字列型への変換処理ではそのまんま動いていたのだろう
一旦Doubleにしてから再度文字列にしないといけなかった、ということ

試しにVarType(ws.cells(22,n))の値を調べてみ
これが4か5になっていれば>>1のコードでちゃんと0が出ると思うんだが、8だとダメなのは仕方ない

62 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:13:10.197 ID:SuiF0THC0.net
>>58
もしかしたらこれ、「+」で文字列連結してるのを全部「&」にするだけで解決するかもしれない
VBAは文字列同士の連結は「+」でいいけれど、文字列以外を文字列と連結する場合は「&」じゃないとダメ
基本的には全部「&」で繋いじゃっていいと思う

63 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:14:26.466 ID:oJnHVTLR0.net
>>60
フォーマット使ってる行は確かにいけたけど
フォーマット使ってない行はcstrないとエラー出る

64 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:14:55.155 ID:oJnHVTLR0.net
>>62
やってみます

65 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:16:48.519 ID:dlhWHqPO0.net
わかるけどお前の態度が気に食わない

66 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:17:00.783 ID:oJnHVTLR0.net
>>62
確かに&にしたらいけました
勉強になります

VIPはスレ立てたらあなたみたいな人が来てくれるから
ありがたい

67 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:17:31.305 ID:SuiF0THC0.net
>>63
Formatのとこだけの話のつもりだった
そうじゃないとこは&じゃないと繋げないね

68 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:19:08.946 ID:dlhWHqPO0.net
>>66
糞がうんこが肥溜めが!
いっちょ前に口聞いてんじゃねえど!!

69 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:23:07.719 ID:ulyxqd9b0.net
自演くさいんだよなあ
初心者ならわざわざ連結で+使わないから

70 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:24:28.307 ID:SuiF0THC0.net
>>61違ったわ
Strは普通にDoubleでも整数部の0を消しやがったのでStrを使うのが間違い

71 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:25:20.776 ID:oJnHVTLR0.net
>>69
そうなの?自演なら最初にフォーマット関数を言われた時に完結しないのが謎でしょ

72 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:26:47.001 ID:ulyxqd9b0.net
まぁ解決したんだから気にすんなって

73 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:27:04.174 ID:SuiF0THC0.net
>>71
敢えて無能を晒しておくことで、後から颯爽と出てきた俺のすごさをアピールしてみせたのではないと証明することは難しい

74 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:28:04.491 ID:HhFqWzEc0.net
お前ら頭いいな

75 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:29:37.676 ID:oJnHVTLR0.net
30分から授業あるから落ちるけど
ほんとあざした
思い返せば
+とandは Pythonかなんかでもつまづいたような気がしてきてる

76 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:30:56.671 ID:ulyxqd9b0.net
>>73
嫌いじゃない
>>75
他の言語も色々やってるとうっかりそういうところでミスったりするよね

77 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:31:28.036 ID:ulyxqd9b0.net
ではこれにてClose #1です

78 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:32:00.481 ID:SuiF0THC0.net
だれうま

79 :以下、?ちゃんねるからVIPがお送りします:2021/06/22(火) 16:34:44.654 ID:ulyxqd9b0.net
>>38が先生
>1が生徒
だったら草

総レス数 79
19 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★