視覚障害者きうっちの自立への道

視覚障害者きうっち(S52年生)が気の向くままに日々の生活をツラツラとつづるブログ

在勤生活1542日目

2019-02-04 18:00:56 | 在勤生活
 VBA、というかEXCELそのものの話。そういえば昔、セルに入力されている値を参照してそのままシート名にする方法を職業訓練校で習ったような-。
ということをふと思い出し、今更訓練校で使っていたテキストを引っ張り出すのは面倒なので(笑)
ネットで調べてみることに。少し調べてみて、当初わたしが考えていた「EXCELの入力で…」という方法は分からなかったのですがorz
「マクロを用いて」、というのであれば、↓に似たコードを見つけたので、↑を実現することは比較的簡単と判明(^^)。
(ちなみに↓はそのネットで拾ったコードをわたしが少し変更したものなので、1行前の文章が日本語としてややおかしいことになっています(^^;)
 なお、下記コードの使い方は以下①②③を参照のこと。


①EXCELを開いた状態で、alt+F11の同時押しでVBエディタを開く
②モジュールリストの中から「ThisWorkBook」モジュールを選択し、下記コードを貼り付ける
③これでセルa1に「祝祭日非営業日リスト」という文言が含まれていれば、セルa1の値が変更されたタイミングでアクティブなシートのシート名が自動的にセルa1の値へ置き換わる

※ちなみに、③の条件を変えたい場合は「'☆」が入力されている行の""の間の文字列を任意のものへ変えてください。


↓↓ここからマクロのコード

'セルa1に特定文言が含まれている場合は、セルa1の内容が変更されたタイミングで、セルa1に入力されている文字列をそのままシート名にする

'↓の""の中に「特定の文字列」にしたいものを入力する
private const key as string = "祝祭日非営業日リスト" '☆

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

If InStr(Range("a1").Value, key) < 1 Then Exit Sub
If Target.Address = "$A$1" Then Sh.Name = Target.Range("A1").Value

End Sub

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする