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

エクセルVBAについて質問です。次のページにあるマクロを作ってください。ただし関数が使えるところは関数を使ってもOKです。よろしくお願いします。
http://hatena88.web.fc2.com/newpage2.shtml

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

▽最新の回答へ

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

D列

="1234" & A1 & "5678" & B1 & "90"

E列

="11" & A1 & "22" & C1 & "i33"

行に あわせて A1、B1、C1の 数字を変えてください。

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

◎質問者からの返答

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


2 ● りくっち
●30ポイント

例示の表にある結果と、文章通りに算出した場合の結果が、

E2、E3(C列の参照部分をB列を参照している)と算出結果の末尾の数が違うように思うのですが…。

文章の条件だけなら↓の結果になるとかと。


A B C D E
aaaa zzzz tttt 1234aaaa5678zzzz90 11aaaa22tttti33
bbbb xxxx dddd 1234bbbb5678xxxx90 11bbbb22ddddi33
cccc yyyy ffff 1234cccc5678yyyy90 11cccc22ffffi33

↑で算出結果が間違いないのなら、

D1="1234"&A1&"5678"&B1&"90"

E1="11"&A1&"22"&C1&"i33"

で算出できるかと思います。


例示の表のように末尾を連番にしたい場合は、

D1、E1は上記の式のままで、

D2="1234"&A2&"5678"&B2&VALUE(RIGHT(D1,2))+1

E2="11"&A2&"22"&C2&VALUE(RIGHT(E1,2))+1

とすれば例示の表のように末尾が連番で算出されるかと思います。

http://dekirutoiina.jugem.jp/?eid=4

◎質問者からの返答

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

文章間違えていましたね。ご指摘ありがとうございます。


3 ● captim
●30ポイント

全部関数のみでいけます。

D1に ="1234"&A1&"5678"&B1&"90" を記入

E1に ="11"&A1&"22"&C1&"i33" を記入

残りのD列とE列はコピーとかしてください。

URLはダミーです:http://q.hatena.ne.jp/

◎質問者からの返答

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

これで結構です。

使ってみて分かったのですが、どうも関数では具合が悪いようです。マクロで操作する方法をお待ちしています。


4 ● arhbwastrh
●50ポイント
Sub test()
'扱う変数を宣言することにより、処理が早くなるらしいですw
'ソース⇒http://hp.vector.co.jp/authors/VA019204/programming/vb/vb1.htm
'Longが一番早いらしいので、特に問題が無ければ型はLongにします
'Longは-2147483648?2147483647しか扱えません

Dim Y As Long 
Dim X As Long

Y = 1 'YとXはそれぞれ縦(行)横(列)に対応しています
X = 4 '例えば、Cells(1,4)と書いた場合はD列の1行目つまりD1セルを表します


 Do Until Cells(Y, 1).Value = "" 
'A列のセルが空白になるまで以下の処理を繰り返しなさい
 
 For X = 4 To 5 
'Xが5になるまで同じ作業をしなさい
 Cells(Y, X).Replace What:="■A■", Replacement:=Cells(Y, 1).Value 
'セル内の■A■をA列にある対応するセルの内容に書き換えなさい
 
 If X1 = 4 Then 'もしD列について作業しているなら次の行からElseまでの処理を行いなさい

 Cells(Y, X).Replace What:="○B○", Replacement:=Cells(Y, 2).Value 
 
 Else 'D列以外についての作業なら次の行からEnd Ifまでの処理を行いなさい

 Cells(Y, X).Replace What:="△C△", Replacement:=Cells(Y, 3).Value 
 
 End If
 
 Next 
 
 Y = Y + 1 '次の行に移る為Yの値を設定します
 
 Loop 

End Sub
◎質問者からの返答

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

大変助かりました。

関連質問


●質問をもっと探す●



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