VBA Excelに関するしつもんです。
ddd = "23:53"
のような文字列変数があり、
これをハイフンで分割してLong型の配列に格納したいのですが
一度、
eee = Split(ddd,":")
としてから
dim fff() as long
redim fff(ubound(eee)
for i = 1 to ubound(eee)
fff(i) = eee(i)
next i
のようにして、別で用意した配列に格納しなおす必要がありますか?
直接Split関数でLong配列に入れる方法があれば教えてください。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
そのような関数を自前で作成するのが最善の策かと思います。
以下は、Long型の配列にSplit結果を格納する関数:MySplitの実装例です。
Sub hyoujiは結果を表示する関数です。(参考用)
-----------------------------------------------------
Option Explicit
Public Sub sample()
Dim result1() As Long
Dim result2() As Long
Dim result3() As Long
result1 = MySplit("23:53:12345678901888", ":")
Call hyouji(result1)
result2 = MySplit("1:23:456.7", ":")
Call hyouji(result2)
result3 = MySplit("aaa", ":")
Call hyouji(result3)
End Sub
Public Function MySplit(str As String, dlm As String) As Long()
Dim i As Long
Dim strArray() As String
Dim vals() As Long
strArray = Split(str, dlm)
For i = 0 To UBound(strArray)
ReDim Preserve vals(i)
On Error GoTo MYSPLIT_ERR
vals(i) = Val(strArray(i))
Next
MySplit = vals
Exit Function
MYSPLIT_ERR:
MsgBox ("実行時エラー:" & Err.Number & " " & Err.Description & vbCr & "不正データ=[" & strArray(i) & "]")
vals(i) = 0
Resume Next
End Function
Public Sub hyouji(vals() As Long)
Debug.Print "-------------"
Dim i As Long
For i = 0 To UBound(vals)
Debug.Print vals(i)
Next
End Sub
--------------------------------------------------
以下、実行結果です。
-------------
23
53
0
-------------
1
23
457
-------------
0
ーーーーーーーーーーーーーー
尚、Long型に格納できないような数字(例では12345678901888)
等が、指定されると、エラーが発生しますので、その場合は、
メッセージBOXにエラー表示し、0を格納するようにしています。
もし、メッセージBOXの表示が不要であれば、その行をコメントアウトしてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
array関数で格納した配列の型を変更する
Visual Basic(VBA)
-
split関数で区切り文字がない場合
Visual Basic(VBA)
-
VBA 1次元配列を2次元に追加する
Visual Basic(VBA)
-
-
4
「Columns(A:C")」の列文字を数字にして表記したい"
Excel(エクセル)
-
5
配列の参照渡しで型が一致しません。
Visual Basic(VBA)
-
6
TextBoxコントロールを引数として渡すには?
その他(教育・科学・学問)
-
7
複数の文字列のいずれかが含まれていたらTRUEを返す関数について
Excel(エクセル)
-
8
UserForm1.Showでエラーになります。
工学
-
9
VBAでの[]
Visual Basic(VBA)
-
10
Excelで数値→文字列変換で指数表示になったものをいっぺんに直したい
Excel(エクセル)
-
11
エクセルVBAのIf,Then 構文でOr条件とAnd条件の結合方法?
Excel(エクセル)
-
12
Excelの条件付き書式設定の太い罫線
Excel(エクセル)
-
13
VBAコード記述に際して、コード全体を自動的にインデント付ける方法
Access(アクセス)
-
14
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
15
動的配列が存在(要素が有る)か否かを判定できますか?
Visual Basic(VBA)
-
16
関数の引数でrangeを指定したとき
Visual Basic(VBA)
-
17
With~EndWithの省略部分と引数指定について
Visual Basic(VBA)
-
18
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
19
String だと「 ByRef引数の型が一致しません 」というエラーが出ます。なぜ?
Visual Basic(VBA)
-
20
Excelのセルの色指定をVBAから配列を用いて効率的に行う方法はあり
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
array関数で格納した配列の型を...
-
Excelのセルの色指定をVBAから...
-
ExcelのINDEXとMATCH関数でスピ...
-
表にフィルターをかけ、絞った...
-
[エクセル]連続する指定範囲か...
-
DataSetから、DataTableを取得...
-
読み込みで一行おきに配列に格納
-
仮想リストコントロールの表示
-
エクセル 条件を指定した標準...
-
iniファイルのキーと値を取得す...
-
Excelで配列数式を使わずにとび...
-
エクセルで、絶対値の平均を算...
-
[VBA]改行入りのセルの値を配列...
-
.NET - 配列変数を省略可能の引...
-
pictureboxの表示について
-
Split関数でLong配列に格納する...
-
【VBScript】Dictionaryの項目(...
-
EXCEL VBA 2次元配列に格納さ...
-
Excel オートフィルタのリスト...
-
VBA-読み込んだテキストフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
[エクセル]連続する指定範囲か...
-
Excelのセルの色指定をVBAから...
-
array関数で格納した配列の型を...
-
ExcelのINDEXとMATCH関数でスピ...
-
エクセルで、絶対値の平均を算...
-
表にフィルターをかけ、絞った...
-
配列がとびとびである場合の書き方
-
DataSetから、DataTableを取得...
-
読み込みで一行おきに配列に格納
-
VBA 配列に格納した値の平均の...
-
Excel オートフィルタのリスト...
-
Datatableへの代入
-
SUMPRODUCT関数を用いた最小値
-
【VBA】ユーザーフォーム リス...
-
.NET - 配列変数を省略可能の引...
-
Excel VBA 配列の分割について
-
VB6.0 ファイルの一括読込み
-
スプレットシートのGetTextにつ...
-
iniファイルのキーと値を取得す...
-
INDEX(D:D,L3)の意味は?
おすすめ情報