質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

544閲覧

VBA 実行したいシートで動かない フォントサイズの指定方法

Mkasai

総合スコア19

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2020/04/27 08:02

編集2020/04/27 08:05

VBAコードを作成したのですが、動かしたいシート上で動かない。
また、フォントサイズを指定したいのですが、指定方法に悩んでいます。
マクロを、”作成情報”シートで実行し、”着手”シートに行くと実行されるのですが、”着手”シートでは実行できません。
”着手”シートで実行できるようにしたいです。
また、Case 1~10の場合がありますが、Case 1の場合は、フォントサイズ11 Case 2の場合は、フォントサイズ9 等とCaseによってフォントサイズを指定することはできるのでしょうか。
該当のソースコード

発生している問題・エラーメッセージ

### 該当のソースコード ```ここに言語名を入力 Sub test1() Dim s As String Dim cnt As Long With Worksheets("作成情報") cnt = Cells(Rows.Count, 1).End(xlUp).Row - 2 + 1 Select Case cnt Case 1: s = Range("A2") Case 2: s = Range("A2") & vbCrLf & Range("A3") Case 3: s = Join2(Range("A2:A3")) & vbCrLf & Range("A4") Case 4: s = Join2(Range("A2:A3")) & vbCrLf & Join2(Range("A4:A5")) Case 5: s = Join2(Range("A2:A4")) & vbCrLf & Join2(Range("A5:A6")) Case 6: s = Join2(Range("A2:A4")) & vbCrLf & Join2(Range("A5:A7")) Case 7: s = Join2(Range("A2:A5")) & vbCrLf & Join2(Range("A6:A8")) Case 8: s = Join2(Range("A2:A5")) & vbCrLf & Join2(Range("A6:A9")) Case 9: s = Join2(Range("A2:A4")) & vbCrLf & Join2(Range("A5:A7")) & vbCrLf & Join2(Range("A8:A10")) Case 10: s = Join2(Range("A2:A5")) & vbCrLf & Join2(Range("A6:A9")) & vbCrLf & Join2(Range("A10:A11")) End Select End With Worksheets("着手").Range("S11").Value = s End Sub Function Join2(r As Range) As String Join2 = Join(WorksheetFunction.Transpose(r), "、") End Function

試したこと

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2020/04/27 08:09

コードは「コードの挿入」で記入してください。
guest

回答1

0

ベストアンサー

マクロを実行してみました。

一部ですが下記のような感じでしょうか・・・。
他のcase式にもこのように追加すればよいと思います。

Sub test1()
Dim s As String
Dim cnt As Long
With Worksheets("作成情報")
cnt = Cells(Rows.Count, 1).End(xlUp).Row - 2 + 1
Select Case cnt
Case 1: s = Range("A2"): Worksheets("着手").Range("S11").Font.Size = 15

投稿2020/04/27 08:22

編集2020/04/27 08:32
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/04/27 08:37

作成情報シートで実行されない件ですが、 with worksheets("作成情報")に必要な文法を満たしていないため、 各セルはアクティブなシートで実行されてしまうコードになっています。 with worksheets("作成情報") .range("A1").value .range("A2").value end with のようにrangeの前に.をつけてください。
退会済みユーザー

退会済みユーザー

2020/04/27 23:44

Sub test1() Dim s As String Dim cnt As Long With Worksheets("作成情報") cnt = .Cells(Rows.Count, 1).End(xlUp).Row - 2 + 1 Select Case cnt Case 1: s = .Range("A2") Case 2: s = .Range("A2") & vbCrLf & .Range("A3") Case 3: s = Join2(.Range("A2:A3")) & vbCrLf & .Range("A4") Case 4: s = Join2(.Range("A2:A3")) & vbCrLf & Join2(.Range("A4:A5")) Case 5: s = Join2(.Range("A2:A4")) & vbCrLf & Join2(.Range("A5:A6")) Case 6: s = Join2(.Range("A2:A4")) & vbCrLf & Join2(.Range("A5:A7")) Case 7: s = Join2(.Range("A2:A5")) & vbCrLf & Join2(.Range("A6:A8")) Case 8: s = Join2(.Range("A2:A5")) & vbCrLf & Join2(.Range("A6:A9")) Case 9: s = Join2(.Range("A2:A4")) & vbCrLf & Join2(.Range("A5:A7")) & vbCrLf & Join2(.Range("A8:A10")) Case 10: s = Join2(.Range("A2:A5")) & vbCrLf & Join2(.Range("A6:A9")) & vbCrLf & Join2(.Range("A10:A11")) End Select End With Worksheets("着手").Range("S11").Value = s End Sub Function Join2(r As Range) As String Join2 = Join(WorksheetFunction.Transpose(r), "、") End Function
Mkasai

2020/04/28 07:56

ありがとうございました。 思った通りの動きになりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問