回答編集履歴

4

コード修正

2018/06/28 03:52

投稿

hatena19
hatena19

スコア33692

test CHANGED
@@ -68,7 +68,7 @@
68
68
 
69
69
  If buf Like "[0-9]*" Then
70
70
 
71
- Worksheets("sheet1").Cells(C, 1) = Val(buf)
71
+ Worksheets("sheet1").Cells(C, 1).Value = Val(buf)
72
72
 
73
73
  End If
74
74
 

3

説明の修正

2018/06/28 03:52

投稿

hatena19
hatena19

スコア33692

test CHANGED
@@ -82,7 +82,7 @@
82
82
 
83
83
 
84
84
 
85
- 質問のテキスト例の場合は、下記の出力になる。
85
+ 2018/06/28 12:09 コメントのテキスト例の場合は、下記の出力になる。
86
86
 
87
87
 
88
88
 

2

コードの修正

2018/06/28 03:51

投稿

hatena19
hatena19

スコア33692

test CHANGED
@@ -38,20 +38,52 @@
38
38
 
39
39
 
40
40
 
41
- 仕様が不明瞭だが、下記ならどうか。
41
+ 下記どうか。
42
42
 
43
43
 
44
44
 
45
45
  ```vba
46
46
 
47
- If buf Like "[0-9]*" Then
47
+ Pryvate Sub push1()
48
48
 
49
- Worksheets("sheets1").Cells(C, 1).value = Val(buf)
49
+ Dim Name As Variant
50
50
 
51
+ Dim buf As String, C As Long
52
+
53
+
54
+
55
+ Name = Application.GetOpenFilename("txtファイル,*.txt")
56
+
57
+
58
+
59
+ Open Name For Input As #1
60
+
61
+ Do Until EOF(1)
62
+
63
+ C = C + 1
64
+
65
+ Line Input #1, buf
66
+
67
+ '1文字目が数字[0-9]なら、Val関数で文字列の先頭の数値部分を取り出す。
68
+
69
+ If buf Like "[0-9]*" Then
70
+
71
+ Worksheets("sheet1").Cells(C, 1) = Val(buf)
72
+
51
- End If
73
+ End If
74
+
75
+ Loop
76
+
77
+ Close #1
78
+
79
+ End Sub
52
80
 
53
81
  ```
54
82
 
55
83
 
56
84
 
85
+ 質問のテキスト例の場合は、下記の出力になる。
86
+
87
+
88
+
57
- 1文字目が数字[0-9]なら、Val関数で文字列の先頭の数値部分を取り出す。
89
+ ![イメージ説明](f103083286bb3883de61b447d3c2e459.png)

1

コード追加

2018/06/28 03:48

投稿

hatena19
hatena19

スコア33692

test CHANGED
@@ -31,3 +31,27 @@
31
31
 
32
32
 
33
33
  `*`はそのままだと、ワイルド文字と判断されるので`[ ]`で囲みます。
34
+
35
+
36
+
37
+ ---
38
+
39
+
40
+
41
+ 仕様が不明瞭だが、下記ならどうか。
42
+
43
+
44
+
45
+ ```vba
46
+
47
+ If buf Like "[0-9]*" Then
48
+
49
+ Worksheets("sheets1").Cells(C, 1).value = Val(buf)
50
+
51
+ End If
52
+
53
+ ```
54
+
55
+
56
+
57
+ 1文字目が数字[0-9]なら、Val関数で文字列の先頭の数値部分を取り出す。