人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ExcelのSplit関数を使ったユーザー関数に関して教えてください。
あるセルのデータをスペースで分割した n番目の文字列を取得したいのですが
うまくいきません。
Function seg(mycell As Range, n As Integer)
Dim cut()
cut() = Split(mycell.Value)
seg = cut(n)
End Function
どこがおかしいのか教えてください。
よろしくお願いします。


●質問者: zuguimo
●カテゴリ:コンピュータ 学習・教育
✍キーワード:as Excel SEG セル データ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● きゃづみぃ
●70ポイント ベストアンサー

まず 型を指定しないとダメですね。

Dim cut() As String


次にSplitで取得する場合、カッコはいりません。

cut = Split(mycell.Value, " ")

また、配列は 0からセットされますので、n番目の場合、nで取得してしまうと +1されたものになってしまうので、-1しないとダメです。

で とおすと

Function seg(mycell As Range, n As Integer)

Dim cut() As String

cut = Split(mycell.Value, " ")

seg = cut(n-1)

End Function

ほかに厳密的にやるならば、入力チェックなども必要です。

◎質問者からの返答

ありがとうございました。

型の指定でうまくいきました。


2 ● snitch
●26ポイント

n番目の文字列なのであれば

配列は0オリジン(0番目からスタート)ですので

Function seg(mycell As Range, n As Integer) 
Dim cut() As String
cut() = Split(mycell.Value)
seg = cut(n - 1)
End Function

でうまくいきませんか?

◎質問者からの返答

すみません。n-1に関してはこちらの質問登録時のうっかりミスでした。

やはりcut()の型の指定が重要でした。

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ