ネットが遅くてイライラしてない!?

ExcelファイルAに対し、ExcelファイルBから値を取得するVBAを組んでいます。
下記の形式でファイルBの値をAへコピーする方式を取っています。

ファイルをA、Bと変数指定した上で
A.Worksheets("TEST").Range("A1").Value = B.Worksheets("TEST").Range("A1").Value
という形です。

ファイルBのA1には「数字」が入力されているのですが
数値、文字列の形式が混在しています。

この「数字」をファイルAのA1に文字列として貼付したいと考えています。
なお、貼り付け先のファイルAのA1セルの書式設定は予め文字列としています。

こちらの対応方法を教えて頂けないでしょうか?

※逆に「数値」として貼り付ける方法も教えて頂けるとなおありがたいです。

宜しくお願いいたします。

A 回答 (2件)

>なお、貼り付け先のファイルAのA1セルの書式設定は予め文字列としています。


A.Worksheets("TEST").Range("A1").Value = B.Worksheets("TEST").Range("A1").Text
    • good
    • 3

市役所などの自治体で行っているパソコン相談で相談したほうが良いと思います。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

Qエクセルのシートに文字列を貼り付ける

======================================================================
(A社) (ノノ)))))) (B社)            *****************
  ? ( ノ∂ ∂()   ┌──────┘\  **********************
 ?  ∞人 へ )∞ ? │************** > **********************
  ? () > <() ? └──────┐/  **********************
(C社)   ?    (D社)          **********************
======================================================================

上記のような絵文字を、エクセルのシートに貼り付けると、入力した形式にはエラーがあるとエラー表示になります。セルの書式設定で、ユーザー定義にしました。何か言い方法はないでしょうか?

======================================================================
(A社) (ノノ)))))) (B社)            *****************
  ? ( ノ∂ ∂()   ┌──────┘\  **********************
 ?  ∞人 へ )∞ ? │************** > **********************
  ? () > <() ? └──────┐/  **********************
(C社)   ?    (D社)          **********************
======================================================================

上...続きを読む

Aベストアンサー

1つのセルに書きこむのですよね?
最初の「=」の前に「’」(シングルクォーテーション)をつけてください。
計算式や数字を文字列として扱います
また、1行ごとに別セルに書けば問題ありません。

QExcel 数の数え方 種類の数を数えたい

Excelの質問です。同じ文字列が複数あった場合、それはいくつあっても1とカウントしたいのですが、なかなかうまくいかないので、お力を貸して下さい!

例として、添付画像のような表があったとします。
今回求めたいのは「色の種類」と「合計」です。

①「色の種類」は、その日に何種類の色を使用したか種類の数を求めたい

②「合計」は、1日に複数同じ色があってもそれは1と数えた状態で、すべての日数分の合計を求めたい

というものなのですが、どのような数式を使用すればよろしいでしょうか?
ご回答いただけると嬉しいです。
宜しくお願い致します!

Aベストアンサー

こんばんは!

一案です。
この質問限定の関数(ユーザー定義関数)を作ってみてはどうでしょうか?
(二つのユーザー定義関数を作ってみました)

Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに↓のコードをコピー&ペースト

Function nikkei(myRng As Range) '//この行から//
 Dim cnt As Long, c As Range, myStr As String
  For Each c In myRng
   If InStr(myStr, c) = 0 Then
    cnt = cnt + 1
    myStr = myStr & c & ","
   End If
  Next c
   nikkei = cnt
End Function

Function goukei(myArea As Range, c As Range)
 Dim i, cnt As Long, myRng As Range
  For i = myArea(1).Row To myArea(myArea.Count).Row
   Set myRng = Range(Cells(i, myArea(1).Column), Cells(i, myArea(myArea.Count).Column))
    If WorksheetFunction.CountIf(myRng, c) > 0 Then
     cnt = cnt + 1
    End If
  Next i
   goukei = cnt
End Function '//この行まで//

Excel画面に戻り(VBE画面を閉じて)通常の関数と同じ使い方をします。

画像の配置では、まずF2セルに
=nikkei(B2:E2)

という数式を入れ下へフィル&コピー!
B9セルに
=goukei(B$2:E$5,A9)

という数式を入れ下へフィル&コピー!

これでもお望みの結果になると思います。m(_ _)m

こんばんは!

一案です。
この質問限定の関数(ユーザー定義関数)を作ってみてはどうでしょうか?
(二つのユーザー定義関数を作ってみました)

Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに↓のコードをコピー&ペースト

Function nikkei(myRng As Range) '//この行から//
 Dim cnt As Long, c As Range, myStr As String
  For Each c In myRng
   If InStr(myStr, c) = 0 Then
    cnt = cnt + 1
    myStr = myStr & c & ","
   ...続きを読む

Qセル列のコピペから次回更新時の貼り付けで悩んでいます。 A B … E F G コード 算出 コード

セル列のコピペから次回更新時の貼り付けで悩んでいます。
A B … E F G
コード 算出 コード 算出値 算出値
00001 0.1 00001 0.1 ?
( =A2 ) (=B2)

ABCD列は上書きされ日々かわります。ABCD列はセットの算出値です。E、F列はコピペしております。
更新するのはコードと算出値セットです。更新されたコードに対してのみ表示されます。コード1000に対し、500ほどの更新なので昇順してもコピペだとずれがでてしまい、G列にうまく貼り付けれません。
コードに合わせたG列に貼り付けしたいのですが、うまくいかず悩んでいます。
ご教授のほどお願いいたします。

Aベストアンサー

現状どんなプログラムを書いてますか?

Qエクセル2007でできていたVBAを2013でも動作して欲しい(改作をお願いします)

9月3日に次の質問を出して、bonaronさんからVBAをいただいて解決済みと思っていたら、エクセル2007で動作していたものが2013では動きません。特に2画面が左右ではなく、上下に表示されてしまいます。どなたか分かる方、どの部分にどのような記述を入れたら良いか、教えてください。

9月3日に質問した内容
同じブック内の2つのシートで【比較&同時にスクロール】がうまくできません
エクセル2007を使用して、同じブック内の【暦data合体】というシートと現在見ているシートを整列(左右に並べて表示)して、並べて【比較&同時にスクロール】したいと思っています。
 下のとおり動かすと、最初の画面では予定通り、2画面が正しく表示されています。しかし、そこからスクロールすると、なぜか左側のブック1と右側のブック2が2行分ずれて表示されてしまいます。
 最初の画面が出てから、スクロールする前に表示タブの【同時にスクロール】のチェックを外し、またチェックを入れ直すと、思い通りの動きになりますが、そのようなことをしなくても【比較&同時にスクロール】したいです。どなたか、分かる方、よろしくお願いします。

9月3日の内容に対して、bonaronさんが回答してくださったベストアンサー(ただし、2013には画面が左右ではなく上下になってしまう)

Sub ウインドウの分割による編集()
  Dim strBookName As String
  Dim sh As Worksheet
  
  strBookName = ThisWorkbook.Name
  ActiveWindow.NewWindow
  
  Windows(strBookName & ":1").Activate
  Range("A3").Select
  ActiveWindow.FreezePanes = True
  ActiveWindow.Zoom = 100
  Sheets("暦data合体").Select
  Range("A3").Select
  ActiveWindow.FreezePanes = True
  ActiveWindow.Zoom = 100
  
  Windows.CompareSideBySideWith strBookName & ":2"
  Windows(strBookName & ":2").Activate
  Set sh = ActiveSheet
  Range("A3").Select
  ActiveWindow.FreezePanes = True
  ActiveWindow.Zoom = 100
  Sheets("暦data合体").Select
  Range("A3").Select
  ActiveWindow.FreezePanes = True
  ActiveWindow.Zoom = 100
  sh.Select
End Sub

9月3日に次の質問を出して、bonaronさんからVBAをいただいて解決済みと思っていたら、エクセル2007で動作していたものが2013では動きません。特に2画面が左右ではなく、上下に表示されてしまいます。どなたか分かる方、どの部分にどのような記述を入れたら良いか、教えてください。

9月3日に質問した内容
同じブック内の2つのシートで【比較&同時にスクロール】がうまくできません
エクセル2007を使用して、同じブック内の【暦data合体】というシートと現在見ているシートを整列(左右に並...続きを読む

Aベストアンサー

こんばんは。

一応、直しました。

>私がやりたいのは右側ウィンドウ1に、
>別なアクティブシート上
>2つのウインドウ(左右の2つの画面)で【比較&同時にスクロール】したいのです。

この部分をメインにして、右がずっと変わっていくものだとします。
この手のマクロは、深く研究したことがないし、誰も手を付けていない分野なので、通常ありきたりのコードしかないはずです。まして、バグっぽい動きがあります。

'------------------------------------------------
'仕様書
'Excel 2013(SDI用)
'・最初のマクロで、同じブック内の同じシートを、画面(Window)を縦にし二分し、左右半半になり、左側の画面の2行目と3行目の間が固定されます。
' しかし、同じシートの場合は、右側の画面の行の固定はなりません。これは、できないようです。また、同じシートの場合は、しないほうがよいでしょう。マクロでは誤動作が発生します。

'・右側のシートを別のシートに、再び同じマクロで実行すると、シンクロと右側の画面の行の固定が可能になります。

・他のブックを開いているとに画面にならないことがありますので、必ず単独のブックで行ってください。他のブックを開いてシンクロさせることは、まだ深く検証されていません。まったく別のプログラムになるらしいです。

'なお、汎用性を求めるために、Sheets("暦data合体").Selectは、加えていません。
必要に応じて、文頭のシングルクォートを外してください。

それから、もしかしてなのですが、このマクロはワークシートのデータを修正するためのものでしょうか。修正だけのためでしたら、ほぼEXCELが中心になる、大変に強力な専用ツール・WinMerge があります。(日経PC21にも紹介されました)

http://www.geocities.co.jp/SiliconValley-SanJose/8165/winmerge.html#screenshots

'-----------------------------------------------
'Option Explicit
Private shName As String
Sub LRWinsSyncro()
 Dim arSh(1) As Variant
 Dim wnNames(1) As Variant
 Static ignoflg As Boolean
 Dim i As Long
 Dim ret As VbMsgBoxResult
 Const SPLINE As Integer = 3 '画面割の行位置
 If ActiveWorkbook.Name <> ThisWorkbook.Name Then
  MsgBox "現在のバージョンはアドイン型ではないので、" & vbCrLf & _
   "別のブックでは使えません。", vbExclamation
  Exit Sub
 ElseIf Workbooks.Count > 1 Then
  If ignoflg = False Then
   For i = 1 To Workbooks.Count
    If Workbooks(i).Name Like "xls?" Or Workbooks(i).Name Like "Book*#" Then
     ret = MsgBox("他のブックを開いていると誤動作します。無視して続行しますか?", vbYesNo) '一度だけ聞いてくる
     If ret = vbNo Then
      MsgBox "他のブックを終了してください。", vbInformation
     ElseIf ret = vbYes Then
      ignoflg = True
      Exit Sub
     End If
    End If
   Next
  End If
 End If
 With ActiveWorkbook.Windows
  If .Count = 1 Then
   'Worksheets("暦date合体").Select
   shName = ActiveSheet.Name '暦date合体
   .Item(1).NewWindow
   .Arrange , True, True, True
  End If

  If .Count = 2 Then
   If .Item(1).ActiveSheet.Name = shName Then
    wnNames(0) = .Item(1).Caption
    wnNames(1) = .Item(2).Caption
    arSh(0) = .Item(wnNames(0)).ActiveSheet.Name
    arSh(1) = .Item(wnNames(1)).ActiveSheet.Name
   Else
    wnNames(1) = .Item(1).Caption
    wnNames(0) = .Item(2).Caption
    arSh(0) = .Item(wnNames(1)).ActiveSheet.Name
    arSh(1) = .Item(wnNames(0)).ActiveSheet.Name
    If shName = "" Then shName = arSh(1)
   End If
  End If
 End With
 If arSh(0) = arSh(1) Then
  With Windows(wnNames(0))
   .Activate
   .FreezePanes = False
   .ActiveSheet.Range("A1").Select
   .ActiveSheet.Rows(SPLINE).Select
   .FreezePanes = True
   .ActiveSheet.Range("A1").Select
  End With
  Windows.Arrange , True, True, True
  Windows.CompareSideBySideWith wnNames(0)
 Else
  With Windows(wnNames(1))
   .Activate
   .FreezePanes = False
   .ActiveSheet.Range("A1").Select
   .ActiveSheet.Rows(SPLINE).Select
   .FreezePanes = True
  End With
  With Windows
   .Item(wnNames(0)).Activate
   .CompareSideBySideWith wnNames(1)
   Windows.Arrange ArrangeStyle:=xlVertical
  End With
 End If
End Sub

Sub ReleasedWindows()
'Window(窓) を一つにするマクロ(別のマクロとして残した)
Dim Ac As Worksheet
Dim sh As Worksheet
With ActiveWorkbook.Windows
 If .Count = 2 Then '画面を戻す
  .Item(2).Close
  .Item(1).WindowState =xlNormal
  ActiveWindow.FreezePanes = False
 End If
End With
Set Ac = ActiveSheet
For Each sh In Worksheets
ActiveWindow.FreezePanes = False '画面固定も外す
Next
Ac.Activate
End Sub

'//
以上ですが、これは、ワークシート上のボタンやコマンドボタン類に登録が一見できたように思えても、登録したマクロ名がなくなってしまいます。(マクロ自体は残っています)
そこで、右クリックメニューに入れることを考えました。興味がおありでしたら紹介します。
ただ、このマクロの方向性は、アドイン型に移行するのが良いようです。

こんばんは。

一応、直しました。

>私がやりたいのは右側ウィンドウ1に、
>別なアクティブシート上
>2つのウインドウ(左右の2つの画面)で【比較&同時にスクロール】したいのです。

この部分をメインにして、右がずっと変わっていくものだとします。
この手のマクロは、深く研究したことがないし、誰も手を付けていない分野なので、通常ありきたりのコードしかないはずです。まして、バグっぽい動きがあります。

'------------------------------------------------
'仕様書
'Excel 2013(SDI用)
'・最初...続きを読む

Qエクセル関数で 4県あって、1を押したら東京が2を押したら神奈川などいちいち東京とか打ち込まない方法

エクセル関数で
4県あって、1を押したら東京が2を押したら神奈川などいちいち東京とか打ち込まない方法ありますか⁉︎

Aベストアンサー

『データの入力規則』を使うのが簡単です。

◆手順 (添付図参照・・・図の番号と手順の番号は対応しています)
1.リストを空いているセルに記入します。 リストとは、東京、神奈川、・・・の表のことです。
2.入力したいセルを選択して、メニューから『データ』
3.『データの入力規則』
4.『データの入力規則』
5.入力値の種類のところで『リスト』を選択
6.元の値のところに、手順1で作成したリストのセル範囲を指定
7.『OK』

これで、▼印をクリックして、選択肢から選べるようになります。

Q【Excel VBA】マクロの処理速度について

はじめまして。

マクロの処理速度について教えて頂きたいです。

現在、ボタンクリックにて実行される2つのマクロを作成しています。

1つ目のマクロで、ボタンクリックされると表1より転記にて表2を作成し、
最後に2つ目のマクロ(サブルーチン)を呼び出しています。

2つ目のマクロ(サブルーチン)では、作成した表2を参照して
更に別の表3を作成しています。

ボタンクリックでは無く直接、
「マクロ→マクロの表示→実行」で実行すると正しく処理されるのですが、
ボタンをクリックで実行すると、表3の作成が途中で止まっている?ようで正しく作成されません。
(表3は3行分作成されて止まりますが、マクロ終了時に表示される終了メッセージは表示されます)

素人の為、重いマクロを作成してしまっているのかもしれないのですが、
このような事象の解決策をご存知でしたらお願いいたします(>_<)

Aベストアンサー

>シートのクリアにつきまして、クリアしていない認識はあったのですが、クリアをしてしまうと書式設定や表の罫線が消えてしまうため盛り込めていませんでした。
>3行目以降クリアの場合でも罫線と書式設定が消えてしまいますが、(書式設定で、部署別増減一覧のみ0は非表示としていました)マクロでクリア処理を行う場合、全クリアではなくブランクを挿入するイメージの記述等はありますでしょうか?

そういうことでしたら、
Set ws = Worksheets("人員増減一覧")
ws.Range("A1:I5000").Value = ""・・・・①


maxv = sh1.Cells(Rows.Count, "A").End(xlUp).Row
'②部署別増減一覧のクリア
If maxv > 2 Then
sh3.Range("A3:O" & maxv).Value = ""
End If

のようになります。
①は人員増減一覧の罫線を消さないクリアですが、最大行が5000行の場合のように、予め行数がわかってる場合です。
②は部署別増減一覧の罫線を消さないクリアですが、実際にデータがある行までをクリアする方法です。

いずれにしろ、このような方法をとると、添付図の赤線で囲んだ箇所ができるのではないでしょうか。
罫線は、データがある行までのほうが良いかと思います。
つまり、赤線で囲んだところは、罫線がない方がよいかと思います。
そのようにする方法は、データを作成完了後に罫線をマクロで引く方法です。
これについては、
https://oshiete.goo.ne.jp/qa/10717384.html
「年度別にカウントする転記マクロについて」で回答します。

>シートのクリアにつきまして、クリアしていない認識はあったのですが、クリアをしてしまうと書式設定や表の罫線が消えてしまうため盛り込めていませんでした。
>3行目以降クリアの場合でも罫線と書式設定が消えてしまいますが、(書式設定で、部署別増減一覧のみ0は非表示としていました)マクロでクリア処理を行う場合、全クリアではなくブランクを挿入するイメージの記述等はありますでしょうか?

そういうことでしたら、
Set ws = Worksheets("人員増減一覧")
ws.Range("A1:I5000").Value = ""・・・・...続きを読む

Qエクセルのユーザー定義関数について

エクセルのユーザー定義関数について教えてください。

ユーザー定義関数なるものがあると知り、関数を作成していました。
結構便利なものが作れそうだと分かり
http://kabu-macro.com/word/ya-yo/user_teigikansuul.html
の消費税計算を参考に、簡単な四則演算の計算式を組んでいました。
ある程度普段使う簡単だけど面倒だった数式を組んだのちに、
vlookup関数の代わりに、indexとmatch関数を良く使っているので、これをちょっと使ってvlookup_2という関数を作ろうとしていたのですが、
ユーザー定義関数には既存のワークシート関数を組み込むことはできないのでしょうか?
また組み込めるとしたら上記のindexとmatch関数をどのように配置したら良いのでしょうか?

Aベストアンサー

こんにちは

ユーザ定義関数は(マクロと同様)VBAという言語で記述しています。
ワークシートで利用する関数も(ほとんどのものは)利用することが可能です。

利用法は、例えばINDEX関数であれば
 WorksheetFunction.Index( ~~~ )
のように、WorksheetFunctionオブジェクトのメソッドとして呼び出せばよいです。
引数の内容はシートの関数とほとんど同じですが、一応、事前に確認なさった方がよろしいかと。
https://docs.microsoft.com/ja-jp/office/vba/api/Excel.WorksheetFunction.Index

なお、VBAから利用できるワークシート関数の一覧が以下にありますので、ご参考までに。
https://msdn.microsoft.com/ja-jp/library/office/ff822194.aspx
https://docs.microsoft.com/ja-jp/office/vba/api/excel.worksheetfunction

Qエクセルについて教えて下さい! シート1のA1のセルに、シート2のリストより文字列を探して入力したい

エクセルについて教えて下さい!

シート1のA1のセルに、シート2のリストより文字列を探して入力したいのですが、
シート2のリストがとても多く、似たような文字列がたくさんあります。
そのため、シート1のA1に何文字か入力すると、その文字が含まれた文字列がリストアップされて出てきて、選択できるようにしたいです。

例えば、シート1のA1に「りんごジュース」と表示させたい場合、「りんご」といれたら、シート2のリストにある、りんごジュース・青森りんご・りんご飴などのリストが出てきて、そのリストから「りんごジュース」を選択できる。

色々検索したのですが可能がどうかすらも分からなかったので、わかる方教えて頂ければ助かります(>_<)
宜しくお願いします!

Aベストアンサー

>リストから選んだら消えるようにするには難しいのですかね?

一番手っ取り早いのはSheet2のA列データを消去するコトですかね。
ただSheet1のチェンジイベントで別シートのデータ消去はできなかった記憶があります。
そうなると標準モジュールに手を加えなければなりませんので、
チェンジイベントでもとりあえずリスト候補の表示はしないコードにしてみました。

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim c As Range
  If Target.Address = "$F$9" Then
   Set c = Worksheets("Sheet2").Range("A:A").Find(what:=Target, LookIn:=xlValues, lookat:=xlWhole)
    If c Is Nothing Then
     Call Sample1
     Target.Select
     SendKeys "%{DOWN}"
    End If
 End If
End Sub

※ プルダウンの表示は回避できますが、
もう一度右側▼をクリックするとSheet2のA列にデータが残っているため
再選択が可能になります。

この再選択もしないようにしたい場合は
最初に書いたように標準モジュールにSheet2のA列2行目以降のデータを消去するマクロを追加する必要があると思います。
そのマクロをChangeイベントで呼び出すくらいですかね。
※ ↑は未検証なので不具合が出たらごめんなさい。m(_ _)m

>リストから選んだら消えるようにするには難しいのですかね?

一番手っ取り早いのはSheet2のA列データを消去するコトですかね。
ただSheet1のチェンジイベントで別シートのデータ消去はできなかった記憶があります。
そうなると標準モジュールに手を加えなければなりませんので、
チェンジイベントでもとりあえずリスト候補の表示はしないコードにしてみました。

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim c As Range
  If Target.Address = "$F$9" Then
   Set c = Worksheets("Sheet2...続きを読む

Qエクセルの日付について 営業職をしておりまして、顧客管理をエクセルで行なっておるのですが下記の事につ

エクセルの日付について

営業職をしておりまして、顧客管理をエクセルで行なっておるのですが下記の事についてご教授頂きたく質問させて頂きます。

内容はエクセルの顧客管理のデータの中で、
記入している日付を過ぎた時に、1年後の日付に自動更新が出来るように出来たらなと…

例としましては例えば本日が「2018年9月7日」として、次の日にファイルを開いた際に自動更新され「2019年9月7日」と表示が更新されているようにしたいです。

エクセル初心者の為、無知でも大変申し訳ございませんが、ご教授頂けますと幸いです。

Aベストアンサー

こんにちは

セルの値を自動で変化させるには、関数かマクロを利用するしかありません。
関数の場合は、入力セルの値と結果を表示するセルを同じにすることができないという制限があります。

ご質問の内容に近い方法をいくつか考えてみました。

◇関数による方法1
例えばA1セルに日付を入れます。自動更新されるセルはB1として、B1セルに
 =DATE(YEAR(TODAY()),MONTH(A1),DAY(A1))
の関数式を入力しておけば、B2セルの値はご質問のような表示となります。
(セルの書式設定で、日付の表示を設定しておく必要があります)
A1セルが邪魔な場合は、A列を非表示しておくなどでによって、B列だけを表示することで、見た目は更新されるセルだけが見えるようになります。

◇関数による方法2
入力セル欄に直接関数を設定する方法です。例えば「○〇年9月7日」(○〇は自動更新)を設定したい場合、そのセルに
 =DATE(YEAR(TODAY()),9,7)
と入力します。(最後の「9,7」が日付に相当)
これによって、このセルの表示は自動的に更新されるようになります。
(セルの書式設定に関しては、前記と同様です)

◇マクロによる方法
ThisWorkbookのWorkbook_Open()イベントを利用します。
(ブックを開いた時に実行されるマクロとなります。)
ご質問文では、対象のセルが不明ですので、例えば、対象セルをtargetCellとします。
 Set targetCell = Worksheets(1).Range("A1") のような感じです。
targetCellに対して
 targetCell.Value = DateSerial(Year(Date), Month(targetCell.Value), Day(targetCell.Value))
としておけば、そのセルの値はブックを開いた際に自動更新されるようになります。

※ 上記は要領のみでエラーチェックなどはしていませんので、例えば、セルに日付以外の値がある場合などにはエラーが発生します。
※ 対象セルが複数ある場合は、順にループさせれば可能です。

とは言え、ブックを開くたびに実行されるマクロとなりますが、年間の大半の場合は無駄に動作する(=値が変化しない)ものになりますね。

こんにちは

セルの値を自動で変化させるには、関数かマクロを利用するしかありません。
関数の場合は、入力セルの値と結果を表示するセルを同じにすることができないという制限があります。

ご質問の内容に近い方法をいくつか考えてみました。

◇関数による方法1
例えばA1セルに日付を入れます。自動更新されるセルはB1として、B1セルに
 =DATE(YEAR(TODAY()),MONTH(A1),DAY(A1))
の関数式を入力しておけば、B2セルの値はご質問のような表示となります。
(セルの書式設定で、日付の表示を設定しておく必要が...続きを読む

Q名前の先頭に本日を付したデータの使い廻し

エクセル2013です。
名前の先頭に本日の日付を付したデータを、セルの随所に使い廻し(コピー)したいのです。
そこで、名前(波租:)の先頭に日付を付す関数【=TEXT(TODAY(),"m/d")&"波租:"】で、
日付の例として【9/1波租:】を作成しました。
しかし、この値を単なるコピーでは関数表示となり困っています。
関数値とリンクしたセルに “ 値 ” だけを設定すれば良いと想像しますが、やり方がわかりません。
【9/1波租:】から形式を選択して貼り付けで、値と数値の書式を選択は、使い廻しの度には面倒でやりたくありません。
もっと簡便な別のやり方でも構いません。どなたか詳しい方教示いただければ嬉しいです。

Aベストアンサー

えっと、ご自身で

>=TEXT(TODAY()

とか、書いてますよね。TODAY関数を入れるというだけの話です。
そのセルを=A1とかで参照するとかそういう話です。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング