VBAのコードが分からず困っています。(全くの素人です・・)
やりたいことは
1.シート名一覧を用意してあるので、その一覧の名前を付けた新しいシートを作りたい
2.excelテンプレートを用意しており、新しいシートはテンプレートで開きたい
3.新しく作られるシートは右側に作りたい
右側にシートを作ることができなくて困っています。
お知恵をお借りできませんでしょうか
宜しくお願いします。
現在までできているコード
Sub シート作成()
For Each 対象セル In Selection
ActiveSheet.Name = 対象セル.Value
Sheets.Add Type:= _
"C:\Users\kc\AppData\Roaming\Microsoft\Templates\○○テンプレート.xltm"
Next 対象セル
End Sub
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
#2の回答者です。
私が、質問から想像した内容です。私の知っていた頃のVBAとか変わってしまっているのかもしれません。
'//---
Sub Test1()
Dim sel As Variant
Dim mPath As String
Dim newWb As Workbook
Dim n As Variant 'シート名
Set sel = Selection 'マウスでドラッグ
If TypeName(sel) <> "Range" Then Exit Sub
If sel.Cells.Count = 1 Then Exit Sub
mPath = Application.TemplatesPath
Set newWb = Workbooks.Open(mPath & "○○テンプレート.xltm")
With newWb
For Each n In sel
If n <> "" Then
.Worksheets.Add .Worksheets(.Worksheets.Count)
.ActiveSheet.Name = n
End If
Next n
End With
End Sub
No.2
- 回答日時:
私は、さっぱり、VBAが分からなくなってきています。
https://msdn.microsoft.com/ja-jp/library/office/ …
ヘルプで、Sheets.Add メソッド のオプションのType をみると、
xlChart, xlDialogSheet, xlExcel4IntlMacroSheet, xlExcel4MacroSheet, xlWorksheet
5つタイプがあることになっていますが、
.... Type:=_
"C:\Users\kc\AppData\Roaming\Microsoft\Templates\○○テンプレート.xltm"
これって何でしょうか?新しいマクロのメソッドの仕様なのでしょうか?
>1.シート名一覧を用意してあるので、その一覧の名前を付けた新しいシートを作りたい
◯「セルの数だけ、新しいシートに、一覧の名前をつけたい。」ということですよね。
>2.excelテンプレートを用意しており、新しいシートはテンプレートで開きたい
テンプレートを加工するのでしょうか?
それとも、テンプレートで呼び出したブックに加工するのでしょうか。
テンプレートに加工するということは、それはマクロでする事自体は人の好き好きだと思います。たった、一回きりのマクロにはなるでしょうけれども。
要するに、私が思ったのは、
A,B,C,D と、ワン・セルずつに文字が書いてあって、
テンプレートで呼び出したファイルに、
新しいシートが4つで、名称が、A,B,C,D となるということです。
----------------------------------
Sheet1, Sheet2, Sheet3,[ A, B, C, D]
と、このように解釈したのですが、違いますか?
ふつうは、テンプレートをマクロで呼び出して、実体化したブックのシートの右に、新しいシートを加えていきながら、名称を変えていくなら分かります。そういうコードなら、私は、まだ書けると思います。
解決していたら、私に返事は不要です。もう、理解不能になってきていますから、無視しても構いません。
No.1
- 回答日時:
全くの素人とは、ご謙遜ですね。
ほとんど正解ですよ。シートを右側に追加するには、Afterオプションで指定します。
シート名を指定(変更)するのは、Addした後です。
それから、テンプレートの拡張子は、.xltx ですよね。
Sub シート作成()
Dim 対象セル As Range
For Each 対象セル In Selection
Sheets.Add After:=Sheets(Sheets.Count), _
Type:="C:\Users\kc\AppData\Roaming\Microsoft\Templates\○○テンプレート.xltx"
ActiveSheet.Name = 対象セル.Value
Next 対象セル
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで1月0日と表示される!!
-
Excelの「0」だけ非表示、小数...
-
日付が未入力の際はゼロか、空...
-
Excelで複数シートの選択セルを...
-
エクセルの文字
-
Rangeメソッドは失敗しました。...
-
エクセルで条件に一致したセル...
-
マクロ 新しいシートにデータ...
-
別シートのセルを絶対参照にする
-
ExcelでTODAY関数を更新させな...
-
複数シートの同じセル内容を1シ...
-
エクセルでシート保護をかける...
-
Excelシートの保護時にデータの...
-
Excelのファイル容量が減らない...
-
シート参照で変数を使いたい(EX...
-
(Excel)あるセルに文字を入力...
-
エクセルで、加筆修正したセル...
-
エクセルで別シートからの最大...
-
エクセルで20万行あるシート...
-
VBAで、セル(Range)のオブジ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの「0」だけ非表示、小数...
-
日付が未入力の際はゼロか、空...
-
Excelで複数シートの選択セルを...
-
エクセルで1月0日と表示される!!
-
エクセルで条件に一致したセル...
-
Rangeメソッドは失敗しました。...
-
別シートのセルを絶対参照にする
-
シート参照で変数を使いたい(EX...
-
Excelシートの保護時にデータの...
-
複数シートの同じセル内容を1シ...
-
エクセルで複写のように自動入...
-
エクセルの文字
-
Excelでスクロールすると文字が...
-
(Excel)あるセルに文字を入力...
-
Excelのファイル容量が減らない...
-
マクロ 新しいシートにデータ...
-
エクセルで別シートからの最大...
-
ExcelでTODAY関数を更新させな...
-
エクセルのセルに、マウスで選...
-
EXCELマクロで、シート間でのコ...
おすすめ情報