エクセルVBAについて質問です。次のページにあるようなマクロを作ってください。

http://hatena88.web.fc2.com/hatena/newpage2.shtml
なお、現在勉強中ですので、下記の質問の回答者4の方のような解説を付け加えていただいた方には追加ポイントのおまけします。もしそれが必要なければマクロだけでも結構です。よろしくお願いします。
http://q.hatena.ne.jp/1158311664

回答の条件
  • 1人2回まで
  • 登録:2006/09/19 19:03:02
  • 終了:2006/09/20 14:40:25

回答(2件)

id:taknt No.1

きゃづみぃ回答回数13539ベストアンサー獲得回数11982006/09/19 19:31:48

ポイント70pt

Sub Macro1()

'

' Macro1 Macro

'

' Keyboard Shortcut: Ctrl+q

'

retu = "A" '列を変更する場合は、こちらのAを 変えてください

'行は、65536行までいけるので そこまでループさせる。

For a = 1 To 65536

' もし、何もないセルだったら、ループから抜ける

If Range(retu & a) = "" Then Exit For

'空白まで何文字あるのか調べる

b = InStr(Range(retu & a), " ") - 1

'左から空白までをセットする。

Range(retu & a) = Left(Range(retu & a), b)

'次にいく

Next a

End Sub

id:taroemon

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

さっそく使ってみます。

2006/09/19 19:43:21
id:bonlife No.2

回答回数421ベストアンサー獲得回数752006/09/19 19:34:17

ポイント70pt

colNumの値を変更することで、対象とする列を変更できます。

Sub Macro1()
    Dim colNum, rowNum As Integer
    colNum = 1 ' 対象とするセルの列番号 (1の場合、A列)
    rowNum = 1 ' 対象とする行の番号
    ' colNum番目の列(今回はA列)の値が""(ブランク)でない間、処理を実行
    While Cells(rowNum, colNum).Value <> ""
        ' Splitで対象セルの値を" "(半角スペース)で区切る
        ' Splitの戻り値はVariant型の配列であるため、配列の0番目(つまり1番目)をセルの値として代入
        ' このことにより、半角スペースより前の値を抽出可能
        Cells(rowNum, colNum).Value = Split(Cells(rowNum, colNum).Value, " ")(0)
        rowNum = rowNum + 1
    Wend
End Sub

参考になれば幸いです。

id:taroemon

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

さっそく使ってみます。

2006/09/19 19:45:19

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

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

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

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

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