Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


34920 / 76733 ←次へ | 前へ→

【47016】Re:[無題]
発言  ichinose  - 07/2/25(日) 8:46 -

引用なし
パスワード
   おはようございます。

>
>「引数を指定せずに再び dir関数を呼び出す」
>と御説明ありましたが
>
>「引数を指定せずに再び 〜関数を呼び出す」
>
>といったコードの例を他の関数でも知りたいのですが
>宜しくお願いします。
>つまり
>変数=関数("")の形について
>文法みたいなものがあるのでしょうか?


私もこのDir関数と同じインターフェースはよく使いますよ!!



 プロシジャー名  diststr

 機能       指定された文字列を分解して一文字毎に取り出す

 呼び出し形式   diststr([mystr])
         
          inpout mystr 分解して一文字毎とり出す元になる文字列
          output diststr 一文字の文字


 使用例

 標準モジュールに

'=================================================================
Sub main()
  Dim a As String
  a = diststr("ichinose")
  Do Until a = ""
    MsgBox a
    a = diststr()
    Loop
End Sub
'====================================================================
Function diststr(Optional mystr As String = "") As String
  Static svstr As String
  Static svidx As Long
  diststr = ""
  If mystr <> "" Then
    svstr = mystr
    svidx = 1
    End If
  If svidx <= Len(svstr) Then
    diststr = Mid(svstr, svidx, 1)
    svidx = svidx + 1
    End If
End Function
 

上記のコードのmainを実行すると入力データとして、指定された
「ichinose」が分解され、一文字ずつ表示されます。
この手のコードのポイントは、

引数にある Optinalキーワードと

コード内の Staticステートメントです。

試してみて下さい

4 hits

【47012】[無題] 熊川 07/2/25(日) 1:29 お礼
【47013】Re:[無題] Blue 07/2/25(日) 1:41 質問
【47014】Re:[無題] 熊川 07/2/25(日) 3:02 質問
【47016】Re:[無題] ichinose 07/2/25(日) 8:46 発言
【47046】Re:[無題] 熊川 07/2/27(火) 0:34 お礼

34920 / 76733 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free