Sheet1のセルに入力されている文字データを、Sheet2のヘッダに設定する方法をありませんか?

このQ&Aに関連する最新のQ&A

A 回答 (3件)

>ヘッダ(フッタ)のフォントを変えることはできるのでしょうか?




フォントの種類、スタイル、サイズ、下線の有無を指定できるようにしてみました。(下記は例です)
フォント名はセルのフォントの変更をマクロ記録すれば正確なフォント名がつかめると思います。

フッタは CenterHeader → CenterFooter の様に変更します。


Private Sub Workbook_BeforePrint(Cancel As Boolean)
  Dim myDefFont As String '設定したフォントを書き込んだ文字列

  'フォント名、スタイルをセットします。
  'フォントスタイルは『標準』、『斜体』、『太字』、『太字 斜体』
  Const myFontName = "&""MS Pゴシック,太字 斜体"""
  'フォントサイズを数値で指定。下記では『24』
  Const myFontSize = "&24"
  '下線の指定。指定無しは『""』にする
  Const myFontUnderline = "&U"

  myDefFont = myFontName & myFontSize & myFontUnderline

  With ActiveSheet
    If .Name = "Sheet2" Then
      .PageSetup.CenterHeader = myDefFont & Worksheets("Sheet1").Range("A1")
      .PageSetup.LeftHeader = ""
      .PageSetup.RightHeader = ""
    End If
  End With
End Sub
    • good
    • 0
この回答へのお礼

処理することができました!
モジュールを作成するのは応用が大切ですね。
仕事で使用しているのですが、かなり手間が省けて助かります。
本当にありがとうございました!!

お礼日時:2001/12/13 13:33

こんにちは



 以下のページがご参考になるのでは?

【エクセル技道場】-印刷-セルの値をフッターに
http://www2.odn.ne.jp/excel/waza/print.html#SEC14

参考URL:http://www2.odn.ne.jp/excel/waza/print.html#SEC14
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
【エクセル技道場】は大変役に立ちました。
また機会がありましたらよろしくお願いします。

お礼日時:2001/12/13 08:14

私は次のようにしています。



Sheet1のセルA1の内容をSheet2のセンターヘッダーにする例です。

ツール→マクロ→Visual Basic Editor でVBE画面に移動し、表示→プロジェクトエクスプローラでプロジェクトエクスプローラを表示し、そこの、ThisWorkbookをダブルクリックして、出てきたコードウインドウに下記マクロを貼り付けます。
どの位置のヘッダか分からないので、3種類書いています。フッタも同じ理屈です。ご参考に。

Private Sub Workbook_BeforePrint(Cancel As Boolean)
  With ActiveSheet
    If .Name = "Sheet2" Then
      'センターヘッダ
      .PageSetup.CenterHeader = Worksheets("Sheet1").Range("A1")
      'レフトヘッダ
      .PageSetup.LeftHeader = ""
      'ライトヘッダ
      .PageSetup.RightHeader = ""
    End If
  End With
End Sub

この回答への補足

ご回答ありがとうございました。
早速試してみると、目的の結果が得られました。
ただし、センターヘッダに設定することはできたのですが、ヘッダに設定してあるフォントがデフォルトに戻っているのです。ここで補足したいのですが、ヘッダ(フッタ)のフォントを変えることはできるのでしょうか?
またまたの質問ですが、よろしくお願いします。

補足日時:2001/12/13 08:33
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

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

QExcel でシート間の重複データ(Sheet1のA=Sheet2のA かつ Sheet1のB=Sheet2のB)

Excel2000です。

Sheet1のA列・B列・C列・・・にデータが入っています。
Sheet2のA列・B列・C列・・・にデータが入っています。

Sheet1のA列とSheet2のA列は、似たようなデータが入っています。
Sheet1のB列とSheet2のB列も、同様です。
C列以降のデータは、シート間で全然関係ありません。

Sheet1の行データ(A列・B列)が、Sheet2(A列・B列)にも存在しているかどうか、
を知るには、どうすればよいですか。
C列以降の列のデータは、比較する際に使いません。

つまり、
Sheet1のA = Sheet2のA
かつ
Sheet1のB = Sheet2のB
であるような行を知りたいのですが、

どうすればよいのでしょうか。

Aベストアンサー

Sheet1、Sheet2 ともに空いている列に =A1&B1 のような連結データを作り、Matchなどで比較するとか、、、

Sheet1 の E1 =A1&B1
Sheet2 の E1 =A1&B1
Sheet1 の F1 =MATCH(E1,Sheet2!E:E,0)

Qエクセル Sheet1 セルで入力したものをSheet2のセルへ

エクセルのSheet1のセル(例えばB1)に入力した文字を、
Sheet2のセルの任意のセル(例えばA5)に自動で表示させるには
どうすればいいのでしょうか? 
Sheet2のA5のセルの中で、=Sheet1!B1 と入れても「0」に
なるだけで・・・エクセルの何の機能を使えばいいのか全然分かりません。よろしくお願い致します。

Aベストアンサー

「Sheet2のA5のセル」に、=Sheet1!B1 と入れ、「Sheet1のB1セル」に何も入っていなければ「0」と表示されるのが普通です。

「Sheet1のB1セル」に何も入っていない時に「Sheet2のA5のセル」に0を表示させたくない(空欄にしたい)ならば、「Sheet2のA5のセル」に、
 =IF(Sheet1!B1="","",Sheet1!B1)
と入力してみてください。

Qsheet1に入力したデータを、sheet2に作成した一覧表に反映させたい。

sheet1に下記のように入力すると、
  A     B     C    D    E
  日付   氏名    病院   時間   内容
1 5/16   山田太郎  ●●病院  9:00  リハビリ 
2 5/16   鈴木花子  ■■病院 10:00  診察
3 5/16   田中一休  ●●病院  9:00  検査
4 5/17   
sheet2へ下記のように反映させたいのです。
2016年5月 通院一覧表
  A  B    C    D    E     F
  日付 曜日  ●●病院  時間  内容   ■■病院  時間  内容
1  1  日   
~ 
16 16  月   山田太郎  9:00  リハビリ 鈴木花子  10:00 診察
          田中一休  9:00  検査


17 17  火

カレンダーのように反映できると助かります。
宜しくお願い致します。

Aベストアンサー

こんにちは

いろいろ不明なところがありますが勝手に仮定して、マクロとして作成してみました。
使い方がよくわかってませんが、とりあえず実行する毎に全てを作成し直すというものにしてあります。

※ 以下を仮定しています。
◇sheet1
・1行目はタイトル行として利用、2行目以降にデータがあると仮定
・日付欄はDate形式の値が入っているものと仮定
 (異なるデータ形式の場合はその行は無視します)
・1つの行のA~E列は必ず全て入力があるものと仮定
 (空白欄がある場合はその行のデータは無視します)

◇sheet2
・1行目はタイトル行として利用、
 2行目以降から1行ごとに1日、2日・・・に対応すると仮定
 (n行目はn-1日と自動的に判断し、実際の内容はチェックしていません)
・マクロ実行時にC列(1行目も含む)以降は一旦全て消去されます
・病院名は文字列の完全一致で判断しています
 (違う場合は、異なるものとして判断)
・同日、同病院のデータが複数ある場合は一つのセル内に改行して記入されます

※ sheet1の日付データは日を利用していますが、年、月等は一切チェックしていません。


以下、ご参考まで。

Sub Sample()

Dim source As Worksheet, dest As Worksheet
Dim rgs As Range, rgd As Range, rg As Range
Dim dict As Object
Dim rwMax As Long, rw As Long, i As Integer
Dim hname As String, str As String, f As Boolean

Set source = Worksheets("sheet1")
Set dest = Worksheets("sheet2")
Set dict = CreateObject("Scripting.Dictionary")

Set rgd = dest.Cells.SpecialCells(xlCellTypeLastCell)
Range(dest.Cells(1, 3), rgd).ClearContents
rwMax = source.Cells(Rows.Count, 1).End(xlUp).Row

For rw = 2 To rwMax
 Set rgs = source.Cells(rw, 1)
 f = VarType(rgs.Value) = vbDate
 For i = 0 To 4
  If rgs.Offset(, i) = Empty Then f = False
 Next i
 
 If f Then
  hname = rgs.Offset(, 2).Text
  If dict.Item(hname) = "" Then
   dict.Item(hname) = dict.Count
   Set rgd = dest.Cells(1, dict.Item(hname) * 3)
   rgd.Resize(, 3).Value = Array(hname, "時間", "内容")
  End If
  
  Set rgd = dest.Cells(Day(rgs) + 1, dict.Item(hname) * 3)
  For i = 0 To 2
   Set rg = rgd.Offset(, i)
   str = rgs.Offset(, Array(1, 3, 4)(i)).Text
   If rg <> Empty Then str = Chr(10) & str
   rg = rg.Text & str
  Next i
 End If
Next rw

End Sub

こんにちは

いろいろ不明なところがありますが勝手に仮定して、マクロとして作成してみました。
使い方がよくわかってませんが、とりあえず実行する毎に全てを作成し直すというものにしてあります。

※ 以下を仮定しています。
◇sheet1
・1行目はタイトル行として利用、2行目以降にデータがあると仮定
・日付欄はDate形式の値が入っているものと仮定
 (異なるデータ形式の場合はその行は無視します)
・1つの行のA~E列は必ず全て入力があるものと仮定
 (空白欄がある場合はその行のデータは無視します)

...続きを読む

Q大至急!Excelのsheet1のセルの数字をsheet2のセルに反映させたい。 添付した様な表が

大至急!Excelのsheet1のセルの数字をsheet2のセルに反映させたい。

添付した様な表があります。sheet1の黄色のセルの数字をsheet2にある商品コードが同じセルに反映させたいです。わかりにくいかもしれませんが、よろしくお願いします。

Aベストアンサー

どのようにうまく行かないのでしょうか?
2枚の写真の状態でコードを実行すると
商品コード「1234」は「5」に更新されます。
商品コード「2345」は、該当が無いので前の値が保持されます。消した方が良ければ消すことも出来ます。

QExcel2013 VBA sheet1とsheet2のデータを合成してsheet3を作るには

sheet1に氏名、sheet2にその氏名の人の趣味が入っています。

新たにsheet3を作成して、
氏名1
趣味
氏名1

氏名2
趣味
氏名2

氏名3
趣味
氏名3

氏名4
趣味
氏名4

としたいです。
VBAのコードを教えて下さい。

例えば
①sheet1には
A1;1 B1;阿部 C1;あべ
A2;2 B2;佐藤 C2;さとう
A3;3 B3;山名 C3;やまな
A4;4 B4;山本 C4;やまもと

②sheet2にはその人の趣味が入っています。

A1;1  B1;釣り C1;つり
A2;空白 B2;踊り C2;おどり
A3;空白 B3;歌 C3;うた

A4;2  B4;読書 C4;どくしょ
A5;空白 B5;野球 C5;やきゅう


A6;3 B6;映画鑑賞 C6;えいがかんしょう

A7;4  B7;釣り C7;つり
A8;空白 B8;踊り C8;おどり
A9;空白 B9;歌 C9;うた

③sheet3を新に作成して

A1;1 B1;阿部 C1;あべ
A2;空白  B2;釣り C2;つり
A3;空白 B3;踊り C3;おどり
A4;空白 B4;歌 C4;うた
A5;空白 B5;阿部 C5;あべ

A6;2 B6;佐藤 C6;さとう
A7;空白 B7;読書 C7;どくしょ
A8;空白 B8;野球 C8;やきゅう
A9;空白 B9;佐藤 C9;さとう

A10;3 B10;山名 C10;やまな
A11;空白 B11;映画鑑賞 C11;えいがかんしょう
A12;空白 B12;山名 C12;やまな

A13;4 B13;山本 C13;やまもと
A14;空白  B14;釣り C14;つり
A15;空白 B15;踊り C15;おどり
A16;空白 B16;歌 C16;うた
A17;空白 B17;山本 C17;やまもと



のようにしたいです。

実際、データは、sheet1は419列、sheet2は2563列あります。

sheet1に氏名、sheet2にその氏名の人の趣味が入っています。

新たにsheet3を作成して、
氏名1
趣味
氏名1

氏名2
趣味
氏名2

氏名3
趣味
氏名3

氏名4
趣味
氏名4

としたいです。
VBAのコードを教えて下さい。

例えば
①sheet1には
A1;1 B1;阿部 C1;あべ
A2;2 B2;佐藤 C2;さとう
A3;3 B3;山名 C3;やまな
A4;4 B4;山本 C4;やまもと

②sheet2にはその人の趣味が入っています。

A1;1  B1;釣り C1;つり
A2;空白 B2;踊り C2;おどり
A3;空白 B3;歌 ...続きを読む

Aベストアンサー

こんばんは!

Sheet3にSheet1のデータを二度表示させるのがイマイチ理解できませんが、
ご質問通りにやってみました。

Sub Sample1()
Dim i As Long, lastRow As Long, myCnt As Long
Dim c As Range, wS1 As Worksheet, wS2 As Worksheet
Set wS1 = Worksheets("Sheet1")
Set wS2 = Worksheets("Sheet2")
Application.ScreenUpdating = False
wS2.Rows(1).Insert
wS2.Range("D:D").Insert
With Worksheets("Sheet3")
.Cells.ClearContents
lastRow = wS2.Cells(Rows.Count, "B").End(xlUp).Row
Range(wS2.Cells(2, "D"), wS2.Cells(lastRow, "D")).Formula = "=IF(A2="""",D1,A2)"
For i = 1 To wS1.Cells(Rows.Count, "A").End(xlUp).Row
With .Cells(Rows.Count, "B").End(xlUp).Offset(1)
.Value = wS1.Cells(i, "B")
.Offset(, -1) = wS1.Cells(i, "A")
.Offset(, 1) = wS1.Cells(i, "C")
End With
Set c = wS2.Range("A:A").Find(what:=wS1.Cells(i, "A"), LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
myCnt = WorksheetFunction.CountIf(wS2.Range("D:D"), wS1.Cells(i, "A"))
.Cells(Rows.Count, "B").End(xlUp).Offset(1).Resize(myCnt, 2).Value = _
c.Offset(, 1).Resize(myCnt, 2).Value
End If
'▼
.Cells(Rows.Count, "B").End(xlUp).Offset(1).Resize(, 2).Value = _
wS1.Cells(i, "B").Resize(, 2).Value
'▲
Next i
.Rows(1).Delete
wS2.Rows(1).Delete
wS2.Range("D:D").Delete
Application.ScreenUpdating = True
.Activate
End With
MsgBox "完了"
End Sub

※ コード内の▼から▲までがもう一度Sheet1のデータを表示させているコードです。
細かい検証はしていませんが、
こんな感じではどうでしょうか?m(_ _)m

こんばんは!

Sheet3にSheet1のデータを二度表示させるのがイマイチ理解できませんが、
ご質問通りにやってみました。

Sub Sample1()
Dim i As Long, lastRow As Long, myCnt As Long
Dim c As Range, wS1 As Worksheet, wS2 As Worksheet
Set wS1 = Worksheets("Sheet1")
Set wS2 = Worksheets("Sheet2")
Application.ScreenUpdating = False
wS2.Rows(1).Insert
wS2.Range("D:D").Insert
With Worksheets("Sheet3")
.Cells.ClearContents
lastRow = ...続きを読む


このカテゴリの人気Q&Aランキング

おすすめ情報