- Excel VBA 質問スレ Part37 [転載禁止]©2ch.net
125 :デフォルトの名無しさん[sage]:2015/06/14(日) 21:09:14.94 ID:1Cglll13 - >>123
書いてみたので載せときましたw よかったらご参考にしてくださいw あと、N番目は関数を呼び出す前には分かっているようなので、引数から 外してみました。あしからずw Function spr(ByRef 対象セル As Range, Optional 分割文字 As String = " ") As Variant 'セルの文字列を分割文字で分割し配列を返す。 Application.Volatile spr = Split(対象セル.Text, 分割文字) If UBound(spr) < 0 Then spr = Array() '分割できなかった時の戻り値 End If End Function Sub test() '、N番目を参照する関数 MsgBox spr(Sheet1.Range("B2"))(0) MsgBox spr(Sheet1.Range("B2"))(1) MsgBox spr(Sheet1.Range("B2"))(2) End Sub
| - Excel VBA 質問スレ Part37 [転載禁止]©2ch.net
126 :デフォルトの名無しさん[sage]:2015/06/14(日) 21:41:53.64 ID:1Cglll13 - なんかバグ見つけたので書き直しました。
もう見てないかもしれませんがどうぞ。 Function spr(文字列 As String, _ Optional 分割文字 As String = " ", _ Optional N番目 As Integer = 1) As String '文字列を分割文字で配列に変換し、N番目の値を返す。 Dim arr As Variant spr = "" If N番目 >= 1 Then arr = Split(文字列, 分割文字) If UBound(arr) <> -1 And UBound(arr) >= N番目 - 1 Then spr = arr(N番目 - 1) End If End If End Function Sub test() Application.Volatile MsgBox spr(Sheet1.Range("B2").Text, , 1) MsgBox spr(Sheet1.Range("B2").Text, , 2) MsgBox spr(Sheet1.Range("B2").Text, , 3) End Sub
| - Excel VBA 質問スレ Part37 [転載禁止]©2ch.net
29 :デフォルトの名無しさん[sage]:2015/06/14(日) 22:11:45.15 ID:1Cglll13 - どうぞ。
Sub Macro2() Sheet1.Rows("1:7").RowHeight = 13.5 Sheet1.Columns("A:H").ColumnWidth = 8.38 End Sub
| - Excel VBA 質問スレ Part37 [転載禁止]©2ch.net
128 :デフォルトの名無しさん[sage]:2015/06/14(日) 22:42:59.92 ID:1Cglll13 - >>29
詳しくはありませんが、 チェックデジットが最後で値が違うからじゃないですかねぇ。 以下の部分がおかしいのかなぁ。 s = s + Mid(Cells(1, 1), Len(Cells(1, 1)) - 1 - i, 1) * (i Mod 6 + 2)
| - Excel VBA 質問スレ Part37 [転載禁止]©2ch.net
129 :デフォルトの名無しさん[sage]:2015/06/14(日) 22:59:58.84 ID:1Cglll13 - >>72
こんな感じですかね? あとはカスタマイズしてみてくださいな。 Sub test() Sheet1.Range("D2").Value = "=VLOOKUP(""d"",A1:B7,B:B,TRUE)" End Sub
|
|