![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
こんにちは。教えてください。電話・FAXの一覧表を作成するのですが,しばしば変更になるため,そこに入力されている番号が,いつ入力されたものか(いつの時点での情報なのか)が分かるように,その入力年月日時刻を表示したいです。下記のQ&Aをみて,その回答通りのことはできるのですが,自分が作りたい表に置き換えた場合,どこをどういじればよいのか分かりません。ご教示いただけましたら幸いです。
私が作りたい表は,B列に会社名,C列に部署名,D列に担当者名,E列に電話番号,F列にFAX番号を入力する形式で,2行目に項目欄を設け,3行目から本文になります(行数はどんどん増えていきます)。で,B列を変更した場合には,同じ行のG列にその変更年月日時刻を,C列を変更した場合には同じ行のH列にその変更年月日時刻を,D列を変更した場合には同じ行のI列にその変更年月日時刻を,E列を変更した場合には同じ行のJ列にその変更年月日時刻を,F列を変更した場合には同じ行のK列にその変更年月日時刻を,自動的に表示するようにしたいです。
http://detail.chiebukuro.yahoo.co.jp/qa/question …
No.1ベストアンサー
- 回答日時:
シート名タブを右クリックしてコードの表示を選ぶ
現れたシートに下記をコピー貼り付ける
private sub worksheet_change(byval Target as excel.range)
dim h as range
on error resume next
for each h in application.intersect(target, range("B:F"))
h.offset(0, 5) = now
next
end sub
ファイルメニューから終了してエクセルに戻る
B:F列に記入する。
G:K列は事前に適切にセルの表示形式を設定しておく
#簡単のため「3行目以下に」の部分は省略しています
#通常,ご相談の用途では「データを削除した」場合は処理をスキップするような手当をしておく事が多いですが,今回はデータ消去も変更として記録します。
この回答への補足
すみません。
B列の会社名の前のA列に通し番号を入力することになりそうなのですが,現状でそれをしますと,F列にA列への入力年月日時刻が表示され,もともと入力されていたF列のファックス番号が消えてしまいます。セルに入力した年月日時刻を記録する対象を,B列からF列にする(A列の入力年月日時刻は表示しないようにする)には,どのようなコードにしたら宜しいでしょうか。
また,A列の通し番号の前に更にもう一列設ける必要が出てきた場合,A列の左に列を挿入すると,現状のA列がB列に,現状のB列がC列に・・・,現状のF列がG列になりますが,その状態で,セルに入力した年月日時刻を記録する対象を,C列からG列にするには,どのようなコードにしたら宜しいでしょうか。
最後に,B列とC列の間に,入力年月日時刻を記録・表示する必要のない「会社のひらがな読み」を入力する列を設けることになった場合,B列とC列の間に一列挿入して,現状のB列はB列のまま,現状のC列はD列になりますが,その状態で,セルに入力した年月日時刻を記録する対象を,B列と(C列を飛ばして)D列からG列にするには,どのようなコードにしたら宜しいでしょうか。
早々にありがとうございます。うまくいきました。ありがとうございます。また関連したご質問をさせていただくこともあるかも知れませんが,今後ともよろしくお願いします。
No.3
- 回答日時:
はて?
捕捉のご質問を頂きましたが,
>F列にA列への入力年月日時刻が表示され,
>もともと入力されていたF列のファックス番号が消えてしまいます。
回答したマクロではそのようなことは起こりません。
>B列からF列にする(A列の入力年月日時刻は表示しないようにする)には,
>どのようなコードにしたら宜しいでしょうか。
最初からそのように回答していますが,いったいどういう事でしょうか?ご回答をお願いします。
キチンと回答を試してみて,上手くいかない所があれば具体的に状況を添えて追加ご質問ください。
>C列からG列にするには,
コードを見れば一目瞭然ですが。
変更前:
for each h in application.intersect(target, range("B:F"))
変更後:
for each h in application.intersect(target, range("C:G"))
とするだけです。
>B列と(C列を飛ばして)D列からG列にするには
変更後:
for each h in application.intersect(target, range("B:B,D:G"))
とします。
ありがとうございます。一点目の補足質問は,自分で色々いじっているうちに混同してしまったようです。教えていただいたコマンドをあらためて入力したところ,補足質問に記載したような現象はおこりませんでした。失礼しました。ほかの2点の補足質問にもご回答いただきありがとうございました。
No.2
- 回答日時:
参考としているマクロのコードを次のようにすればよいでしょう。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = 1 And Target.Column > 6 Then Exit Sub
If Target.Value = "" Then Exit Sub
Application.EnableEvents = False
Target.Offset(, 5) = Now
Application.EnableEvents = True
End Sub
なおG列からJ列には#####のような表示になりますが十分に列幅を広げればよいでしょう。
この回答への補足
すみません。
B列の会社名の前のA列に通し番号を入力することになりそうなのですが,現状でそれをしますと,F列にA列への入力年月日時刻が表示され,もともと入力されていたF列のファックス番号が消えてしまいます。セルに入力した年月日時刻を記録する対象を,B列からF列にする(A列の入力年月日時刻は表示しないようにする)には,どのようなコードにしたら宜しいでしょうか。
また,A列の通し番号の前に更にもう一列設ける必要が出てきた場合,A列の左に列を挿入すると,現状のA列がB列に,現状のB列がC列に・・・,現状のF列がG列になりますが,その状態で,セルに入力した年月日時刻を記録する対象を,C列からG列にするには,どのようなコードにしたら宜しいでしょうか。
最後に,B列とC列の間に,入力年月日時刻を記録・表示する必要のない「会社のひらがな読み」を入力する列を設けることになった場合,B列とC列の間に一列挿入して,現状のB列はB列のまま,現状のC列はD列になりますが,その状態で,セルに入力した年月日時刻を記録する対象を,B列と(C列を飛ばして)D列からG列にするには,どのようなコードにしたら宜しいでしょうか。
削除の場合はスキップされるところまで対応したものをご教示いただきありがとうございました。うまくいきました。また関連したご質問をさせていただくこともあるかも知れませんが,今後ともよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelシフト表 固定シフトの自動変換化 1 2022/04/14 16:10
- Excel(エクセル) Excel セルに入っている日付を参照して、別シートのリストを表示させたい 1 2022/04/12 17:02
- Excel(エクセル) Excelのテーブルについて 6 2023/07/07 08:37
- Excel(エクセル) 特定文字(数字)で行挿入、挿入された行で合計したい 2 2023/03/13 14:30
- 電車・路線・地下鉄 国鉄東海道線、快速の各停区間での種別案内変更はいつから? 4 2022/04/19 09:12
- Visual Basic(VBA) VBA 複数のブックに同じ列を表示させる方法 2 2022/07/20 23:49
- Visual Basic(VBA) Excel VBA 書式変更で困ってます。 オートフィルターの日付フィルターを用いて データの絞り込 2 2022/07/26 22:16
- Excel(エクセル) 表内で、Enterキーで横→行の最後入力したら次の行の先頭に移動するマクロを作りたい 3 2022/05/01 21:19
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
2つのエクセルのデータを同じよ...
-
エクセルで文字が混じった数字...
-
基準となる列を参照して、別の...
-
エクセルで最初のスペースまで...
-
「B列が日曜の場合」C列に/...
-
Excelの行、列の左方向シフト、...
-
Excelで半角の文字を含むセルを...
-
エクセルの表から正の数、負の...
-
エクセル 文字数 多い順 並...
-
エクセルで、列の空欄に隣の列...
-
エクセル 同じ値を探して隣の...
-
EXCELで 一桁の数値を二桁に
-
いまさらですけど流列とは・・
-
A列がない・・・A列が非表示に...
-
VBAで文字列を数値に変換したい
-
エクセル(勝手に太字になる)
-
お店に入るために行列に並んで...
-
複素数を描けるソフトについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
2つのエクセルのデータを同じよ...
-
エクセルで最初のスペースまで...
-
エクセルVBA、別ブックへ転記す...
-
エクセル 文字数 多い順 並...
-
エクセル(勝手に太字になる)
-
VBAで文字列を数値に変換したい
-
エクセルで文字が混じった数字...
-
エクセルの表から正の数、負の...
-
「B列が日曜の場合」C列に/...
-
Excelで半角の文字を含むセルを...
-
エクセルの並び変えで、空白セ...
-
Excel、市から登録している住所...
-
エクセル 同じ値を探して隣の...
-
EXCELで 一桁の数値を二桁に
-
エクセル初心者です 関数の入れ...
-
A列がない・・・A列が非表示に...
-
オートフィルターをかけ、#N/A...
-
エクセルで、列の空欄に隣の列...
おすすめ情報