『数式の中にある〇数字の変換について』(デスうなぎ)
いつもお世話になっております。
デスうなぎでございます。
有識者の方、お助け下さい。
<やりたいこと>
sheet1のC列・D列・F列・H列の3行目から120行目までの各セルにはvlookup関数が入っております。参照先は〇数字から始まるシート名を参照しているが、〇数字ではなく普通の数字にシート名が変更となる場合、一括で変更することは可能でしょうか?
(例) シート名 ?@東京→1_東京 ?A大阪 →2_大阪 ?B名古屋 →3_名古屋など
〇数字も?@から㉕まであります。
数式やVBAなどで解決方法はございますでしょうか?
あるいは地道にひとつづつ手作業で変更となりますでしょうか?
お手数ですがご確認お願い致します。
何卒、よろしくお願い致します。
追伸 すみません〇数字が文字化けして投稿しております。
< 使用 Excel:Microsoft365、使用 OS:Windows10 >
シート名もVBAで変更したいということでしょうか?
シート名を手動で変更したら、参照している式のシート名部分が自動的に変わりましたが。
=(1)shheet!A4 ↓ ='1sheet'!A1
(1)はの1の丸付き数字です。文字化け対策です。 (OK) 2025/05/22(木) 17:58:28
1 シート名と変更のシート名を一覧にするシートを作成(ここでは「作業」シート) ※作業シートは先頭に挿入する。
|[A] |[B] [1]|シート名|変更シート名 [2]| | [3]| | [4]| | [5]| | [6]| |
2 ↓のマクロを実行して、現在のシート名の一覧をA列に転記
Sub test1() Dim i As Long For i = 2 To Worksheets.Count Worksheets("作業").Cells(i, "A") = Worksheets(i).Name Next End Sub
↓実行結果 |[A] |[B] [1]|シート名|変更シート名 [2]|?@東京 | [3]|?A大阪 |
3 B列に変更するシート名を記入
|[A] |[B] [1]|シート名|変更シート名 [2]|?@東京 |1_東京 [3]|?A大阪 |2_大阪
4 ↓のマクロ(test2)を実行 (シート名がB列の名前に変更される)
Sub test2() Dim ws As Worksheet, i As Long For i = 2 To Worksheets.Count Worksheets(i).Name = Worksheets("作業").Cells(i, "B") Next End Sub
※変換するためだけの使い捨てコードです。 ※作業シートは必ず先頭に入れてください (あ) 2025/05/22(木) 18:15:52
ご確認ありがとうございます。
数式はすでに入っており、今後シート名がマル数字の部分だけ変更になる予定です。
シートは全部で25シートあり、変更する数式(参照シート)が全部で80個以上ありますので
今回ご相談させて頂きました。
(デスうなぎ) 2025/05/22(木) 18:35:34
> シート名もVBAで変更したいということでしょうか? > シート名を手動で変更したら、参照している式のシート名部分が自動的に変わりましたが。 ↑ (OK)さんのアドバイス、ちゃんと伝わっていますか?
現状、何が問題として残っているんですか?
(半平太) 2025/05/22(木) 19:44:26
Sub test3() Dim ws As Worksheet, i As Long For i = 1 To Worksheets.Count With Worksheets(i) .Name = i & "_" & Right(.Name, Len(.Name) - 1) End With Next End Sub (あ) 2025/05/22(木) 21:26:52
シート名(1文字目の丸付き数字)を一括で変更したいってことなら、下のような感じでも・・・
Sub Sample() Dim i As Long, n As Long, s As String For i = 1 To Worksheets.Count n = -1 s = Left(Worksheets(i).Name, 1) 'シート名の1文字目 Select Case AscW(s) Case &H24EA '丸付きの 0 なら n = AscW(s) - &H24EA Case &H2460 To &H2473 '丸付きの 1〜20 なら n = AscW(s) - &H2460 + 1 Case &H3251 To &H325F '丸付きの 21〜35 なら n = AscW(s) - &H3251 + 21 Case &H32B1 To &H32BF '丸付きの 36〜50 なら n = AscW(s) - &H32B1 + 36 End Select If 0 <= n Then Worksheets(i).Name = n & "_" & Mid(Worksheets(i).Name, 2) End If Next i End Sub (ん〜) 2025/05/22(木) 21:51:43
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.