人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: taroemon
●カテゴリ:コンピュータ
✍キーワード:VBA エクセル ポイント マクロ 勉強
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● きゃづみぃ
●70ポイント

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

◎質問者からの返答

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

さっそく使ってみます。


2 ●
●70ポイント

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

参考になれば幸いです。

◎質問者からの返答

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

さっそく使ってみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ