忍者ブログ
日常だったりネタだったり作品の進捗だったり……色々書きます。不定期に。
09
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 管理画面

    VBA小ネタ-ファンクション「列名変換」

    こんばんは若槻です。何だか今週は走るように日にちが
    過ぎたような気がします。年取ったせいですかねぇw


    まあそれはさておき本日は久しぶりにVBAでも。
    ただし前の続きではなくてちょっと横道にそれます。

    今回は「列番号から列名に変換する」です。

    今まで晒してきたVBAでも使ってましたが、そちらは
    人様のソースを使ってたに過ぎなかったのでちょいと
    自作してみました。

    こちら↓

    ◎ソース
    '==============================================
    ' 列番号を列名に変換
    '==============================================
    Function RetuHenkan(ByVal k As Integer) As String
      Dim RetuMei As Variant  'A~Zを格納
      Dim RetuA   As Integer  '参照するkの値が27以上の時の1桁目の文字を判断
      Dim RetuB   As Integer  '参照するkの値が27以上の時の2桁目の文字を判断
      RetuMei = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", _
                      "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
      If k > 26 Then
        RetuA = Int(k / 26)
        RetuB = k Mod 26
        If RetuB = 0 Then
          RetuA = RetuA - 1
          RetuB = 26
        End If
        RetuHenkan = RetuMei(RetuA - 1) & RetuMei(RetuB - 1)
      Else
        RetuHenkan = RetuMei(k - 1)
      End If
    End Function

    ◎説明
    1.基本
    1)受け渡し用に変数kを定義。これは何でもよし(必ず数字型)
    2)ファンクション自体は"列名"が欲しいので文字型に
    3)Variant型で定義した変数にArrayでA~Zを格納

    2.本筋
    1)kの値が27以上(=AA列以上)の時
    ・RetuAにkを26で割った値を格納。1~25の時は0、26~51の時は1、など
    ・RetuBにkを26で割ったあまりを格納。0=Z、1=A、2=B……と対応
    ?もしもRetuBが0だったら?
    →割り切れる数=Z分類なので、RetuAの値はひとつ減らし、
    RetuBには26を入れる
    =RetuHenkan(ファンクション名)にRetuAの値、RetuBの値に相当する
    文字を格納する
    2)kの値がそれ以外の時(A列~Z列)
    ・RetuHenkanにRetumeiから相当する文字を格納する


    これだけです。
    一応動作確認はしていますが私のところで大丈夫でも他の方のところで
    上手くいく保証はないのでお気をつけください。

    ちなみに使い方は標準モジュールにこれを置いて必要な時に呼び出すだけ。
    「列番号が移動してて今どこにいるのか分からない」
    「列名が必要なのに列番号しか分からない」
    という時に使えると思います。

     

    以下サイトメール返信です。
    無名拍手の皆さんもありがとうございます^^

     





    ~きりちゃん~
    拍手&コメントありがとです♪
    そして毎度ながらのチェッカーありがとう。助かります(´∀`*)

    もう登場してから結構すぐにトーキの武器が拳になるのは
    決まってた^^
    両親は凄い人なんだ☆ ユーリキアの「剣聖」も一緒に
    出そうと思ったんだけど次回でいいかと←

    そうそう(笑) だからトーキが自分の才能引き継いでくれて
    実は想像以上ににっこにこになってるのよww

    レイギアさんを黙らせられる数少ないうちのひとりですアーザ夫妻は(きら


    さてチェッカー内容ですが……
    全部正しいですorz
    誤字はまさにその通りで、変な改行は直しそこない。
    「|」は小説家になろうのルビ振りのためのアイテムなんだけど
    その後に振るべきルビを私が入れてないからそうなってる;

    ありがとう、全部直しときます~ノシ



    拍手[1回]

    PR

    お名前
    タイトル
    文字色
    URL
    コメント
    パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
    非公開コメント
    この記事にトラックバックする:
    [535]  [534]  [533]  [532]  [531]  [530]  [529]  [528]  [527]  [526]  [525
    カレンダー
    08 2019/09 10
    S M T W T F S
    1 2 3 4 5 6
    8 9 10 11 12 13 14
    15 16 17 18 19 20 21
    22 23 24 25 26 27 28
    29 30
    ブログ内検索
    最新コメント
    [05/27 きり]
    [01/13 きり]
    [06/06 わんこ]
    [03/30 サイトウ]
    [06/09 yu]
    カウンター
    アクセス解析


    フリーエリア
    コガネモチ


        ◆ graphics by アンの小箱 ◆ designed by Anne ◆

        忍者ブログ [PR]