Excel VBA質問箱 IV

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

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


40411 / 76732 ←次へ | 前へ→

【41419】Re:()の判別
回答  Blue  - 06/8/9(水) 17:04 -

引用なし
パスワード
   ▼℃素人 さん:
>ですが、未だになぜfunctionではだめなのかがわかりません。
いいえ、単純に値を返す必要がなくなったからです。
Functionは何か値を返すときに使います。
今回は、値を返したいものが2つになってしまったので、Functionではなく
ByRefの引数で設定するようにしました。
(ByRefの引数を使わないで「ユーザ定義型」の値を返すFunctionにすることも可能)

>それと、Blueさんにいただいた通りにコピーして貼り付けて実行しました結果。
>なぜか、すべての送り先会社名が()を含む会社名に変わってしまいます。
>
>本当に申し訳ございません。
>そして、私の説明ミスに気づきました。
>送り先の会社名は
>単純に「株式会社ABC」という形式と私がしつこくいっている「株式会社ABC(DFG株式会社様向け)」という二つの形式があります。

単純に「株式会社ABC」のパターンのときはB列にはなにが入りますか?
空でイイのであれば、GetCompanyInfo関数の先頭で、fromCompany と toCompany を初期化するような記述を入れておきましょう。

' 文字列の後の括弧を元に、会社名を取得する関数
Private Sub GetCompanyInfo(ByVal text As String, _
              ByRef fromCompany As String, _
              ByRef toCompany As String)
  Dim startPos As Long
  Dim endPos  As Long

  ' 初期化
  fromCompany = text
  toCompany = ""

  ' 終了括弧の位置
  endPos = InStrRev(text, ")")
  If endPos <> 0 Then
    ' 開始括弧の位置
    startPos = InStrRev(text, "(", endPos)
    If startPos <> 0 Then
      ' 括弧の中身を取得
      toCompany = Mid$(text, startPos + 1, endPos - startPos - 1)
      ' 括弧の前を取得
      fromCompany = Left$(text, startPos - 1)
    End If
  End If
End Sub
1 hits

【41378】()の判別 ℃素人 06/8/8(火) 9:02 質問
【41379】Re:()の判別 Blue 06/8/8(火) 9:23 回答
【41402】Re:()の判別 ℃素人 06/8/9(水) 8:18 質問
【41404】Re:()の判別 Blue 06/8/9(水) 8:45 回答
【41412】Re:()の判別 ℃素人 06/8/9(水) 11:30 質問
【41414】Re:()の判別 Blue 06/8/9(水) 12:36 回答
【41418】Re:()の判別 ℃素人 06/8/9(水) 16:58 質問
【41419】Re:()の判別 Blue 06/8/9(水) 17:04 回答
【41428】Re:()の判別 ℃素人 06/8/10(木) 7:37 お礼

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