エクセルについて質問です。


下記のような処理のプログラムを作成できるかたおりましたらよろしくお願いいたします。

列Aにメールアドレスがいくつか入っております。その各セルに入っている
メールアドレスに,(半角カンマ)をつけたものをB1に表示したいのですが、
できますでしょうか?

例)A1にaaa@yahoo.co.jpというデータが、A2にはbbb@gmail.comというメールアドレスが入っておりA3には何もメールアドレスが入っていない場合
B1にはaaa@yahoo.co.jp,bbb@gmail.comという文字が表示される。

よろしくお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2008/11/05 23:10:44
  • 終了:2008/11/06 16:41:28

ベストアンサー

id:SALINGER No.1

SALINGER回答回数3454ベストアンサー獲得回数9692008/11/05 23:21:14

ポイント19pt

プログラムということですので、VBAで書いてみます。

A列で空白が出るまで、ということなら。

Sub Macro1()
    Dim str As String
    Dim i As Long
    i = 1
    While Cells(i, 1).Value <> ""
        str = str & Cells(i, 1).Value & ","
        i = i + 1
    Wend
    Range("B1").Value = Left(str, Len(str) - 1)
End Sub

http://q.hatena.ne.jp/

id:aiomock

ご回答ありがとうございます。

2008/11/06 16:36:47

その他の回答(5件)

id:SALINGER No.1

SALINGER回答回数3454ベストアンサー獲得回数9692008/11/05 23:21:14ここでベストアンサー

ポイント19pt

プログラムということですので、VBAで書いてみます。

A列で空白が出るまで、ということなら。

Sub Macro1()
    Dim str As String
    Dim i As Long
    i = 1
    While Cells(i, 1).Value <> ""
        str = str & Cells(i, 1).Value & ","
        i = i + 1
    Wend
    Range("B1").Value = Left(str, Len(str) - 1)
End Sub

http://q.hatena.ne.jp/

id:aiomock

ご回答ありがとうございます。

2008/11/06 16:36:47
id:romeo_t No.2

romeo_t回答回数15ベストアンサー獲得回数12008/11/05 23:41:40

ポイント19pt

以下のページでそのような関数が配布されています。

使い方も丁寧に解説されていますので試されてみてはいかがでしょうか。(Excel2002で動作確認しました)

-----

エクセルで、指定するセル範囲の文字列を区切り文字付きで結合する関数

http://m-box.seesaa.net/article/89801016.html

注意書きにあるとおり、そのままでは別マシン環境で開いたときにエラーになってしまいますが、

文字列を連結した結果部分を一旦コピーして右クリックから「形式を指定して貼り付け」→「値」を選択すれば

連結した文字列を値として保存できます。(この状態であれば別マシン環境でもファイルを開けます)

id:aiomock

ご回答ありがとうございます。

2008/11/06 16:36:49
id:taknt No.3

きゃづみぃ回答回数13537ベストアンサー獲得回数11982008/11/05 23:43:38

ポイント18pt

標準モジュールに

Function setmail(a As Range) As String
    b = Cells(a.Row, 1)
    For c = a.Row + 1 To 65536
        If Cells(c, 1) = "" Then Exit For
        b = b & "," & Cells(c, 1)
    Next c
    setmail = b
End Function

を作成します。

次に B1のセルに

=setmail(A1)

とすれば、メールアドレスが表示されますよ。



http://q.hatena.ne.jp/answer

id:aiomock

ご回答ありがとうございます。

2008/11/06 16:36:55
id:chuken_kenkou No.4

chuken_kenkou回答回数722ベストアンサー獲得回数542008/11/05 23:48:00

ポイント18pt

プログラムを作成できるかた

VBAで、マクロを書きたいということでしょうか?

提示された処理だけなら、B1セルに下記の式を入れるだけで実現できますが?


=IF(ISBLANK(A3),A1&","&A2,"")

http://q.hatena.ne.jp/はてな

id:aiomock

ご回答ありがとうございます。

2008/11/06 16:37:18
id:van-dine No.5

van-dine回答回数108ベストアンサー獲得回数112008/11/06 01:26:24

ポイント18pt

A3が空のセルであると仮定しますが、こんなのでよろしいでしょうか?

Dim R As Range
Dim S As String
Set R = Range("A1")
S = ""
Do Until VarType(R.Value) = vbEmpty
  S = S & R.Value & ","
Loop Until B
Range("B1").Value = Left(S, Len(S) - 1)

↓ダミー

http://q.hatena.ne.jp/1225894242

id:aiomock

ご回答ありがとうございます。

2008/11/06 16:37:21
id:Gay_Yahng No.6

Gay_Yahng回答回数724ベストアンサー獲得回数262008/11/06 13:57:43

ポイント18pt

ちょっと要求と違ってしまいますが関数でできる方法で

 

B1に =A1

B2に =IF(A2="","",B1&","&A2)

としてB2をコピーB3以降に貼り付け

とします。

すると一番下の行に連結されたアドレスが表示されます。

B1には表示されません

 

http://q.hatena.ne.jp/1225894242

id:aiomock

ご回答ありがとうございます。

2008/11/06 16:37:33

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません