■ このスレッドは過去ログ倉庫に格納されています
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 ★