SSブログ

何とかできました。 [コンピューター]

【やりたいこと】
・エクセル2010で、ボタンを押したとき、ワークシートで現在、選択されているセルに今日の日付(例:2012/6/12) を代入する。

について、2~3日悩んで、Google先生を頼りに、VBAの先生を訪ねて歩きまわってました。悩んでいたのは、Ctrlキーを押しながら、飛び飛びのセルを複数選択したときに、どう記述していいか、分かりませんでした。が、たった今、解決したような気がします。。[猫]

本当は、順序立てて説明できたらいいのですが、最初のVBAのコードを最初に示します。。
説明はおいおい。。

---------------------------------------- ここから ----------------------------------------
Sub 日付()
' 配列を定義
Dim str1(2) As String ' 文字列
Dim ans1 As Integer ' 整数
Dim objRANGE As Range ' Range型
Dim row1, column1 As Integer '行番号、列番号

' 選択範囲がRange型かチェックする
' グラフなどが選択されていたら、処理を中断する
If TypeName(Selection) <> "Range" Then
MsgBox "日付を代入できません。セルを選択して下さい。"
Exit Sub ' Range型でない場合は抜ける
End If
' 選択されているセル範囲の左上へスクロールする
row1 = Selection(1).Row ' 行番号の初期値
column1 = Selection(1).column '列番号の初期値
For Each objRANGE In Selection.Cells
' 一番上の行番号を探す
If objRANGE.Row < row1 Then
row1 = objRANGE.Row
End If
' 一番左の列番号を探す
If objRANGE.column < column1 Then
column1 = objRANGE.column
End If
Next
' 左上へスクロール
With ActiveWindow
.ScrollRow = row1
.ScrollColumn = column1
' MsgBox .VisibleRange.Address ' 現在表示されている(見えている)セル範囲
End With
' MsgBox "Selection.Address=" & Selection.Address
' 文字列を生成
str1(0) = Format(Now(), "現在:yyyy/mm/dd(aaa) hh:mm:ss")
' ActiveCell.Addressでは、単一セルしか代入できないので、Selectionを使う
str1(1) = str1(0) & vbCrLf & Selection.Address
str1(1) = str1(1) & "セルに今日の日付を代入しますか?"
' 選択されているセルに今日の日付を代入するか、確認
ans1 = MsgBox(str1(1), vbYesNo + vbExclamation + vbDefaultButton2)
' 場合分け
Select Case ans1
Case vbYes ' 「はい」
' 選択されているセルに今日の日付を代入
For Each objRANGE In Selection.Cells
objRANGE.Value = Format(Now(), "yyyy/m/d")
Next
'Range(ActiveCell.Address) = Format(Now(), "yyyy/m/d") ' 単一セルへの代入
Case vbNo ' 「いいえ」
' 何もしない
Case Else '「はい」でも「いいえ」でもない
' 何もしない
End Select
' a1セルの現在の日付、時刻を更新
str1(1) = str1(0) & vbCrLf & "a1セルを更新します。"
MsgBox (str1(1))
' a1セルへスクロールする
With ActiveWindow
.ScrollRow = 1
.ScrollColumn = 1
End With
' a1セルに代入
Range("a1") = str1(0)
End Sub
---------------------------------------- ここまで ----------------------------------------

いろんなサイトからコードの一部を拝借しています。
著作権に抵触していたら、コメント願います。

YouTube - Nirvana - Come As You Are - Unplugged in New York (Rehearsal).flv


ヤバイぜ!(4)  コメント(1)  トラックバック(0) 
共通テーマ:日記・雑感

ヤバイぜ! 4

コメント 1

cheese999

nice!アリガトウゴザイマス!
(^_0)ノ
by cheese999 (2012-06-13 22:51) 

Facebook コメント

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。