Excel VBAを効率化 | セルアドレスをCells座標に変換するツール

crafts STUDY

「Excel VBAでA1→Cells(1,1)の変換がめんどくさい」

僕もこの変換にムダな時間をとられたことがあるので、変換ツールがあったらいいなと思って作成してみました。

 

Excel VBAをもっと簡単に|Excel VBA セルアドレス変換ツール

Excel VBAプログラミングを効率アップするためのツールです。R7→Cells(7,18)のようにセルアドレスをCells座標に変換することができます。

Excel VBA セルアドレス変換ツールの使い方

1. 上部のテキストボックスに変換したいセルアドレスを入力。例として「AB3」と入力しました。
(半角英数字、アルファベットは大文字で)

2. 「変換」ボタンを押す。

「AB3」→「cells(3,28)」と変換されました。あとはコピーしてプログラムに貼り付ければOK。

ソースコード

メインの処理部分だけ参考として載せておきます。発酵おじさんの気まぐれコードなので、いろいろツッコミどころ満載です。

このコードはJavaScriptで書かれています。JavaScriptとは、Webブラウザ上で実行できるプログラミング言語で、最近ではほとんどのWebサイトで使用されています。

とっつきにくくて今のところ僕は好きになれませんが、Web系のことをやろうとすると避けては通れないので、少し勉強してみました。もし興味を持たれた方のためにいくつか入門書のリンクを載せておきますね。

(JavaScript入門書)
確かな力が身につくJavaScript「超」入門 第2版

スラスラ読める JavaScript ふりがなプログラミング (ふりがなプログラミングシリーズ)



//テキストボックスから値の取得
function getChar(){
  var res = document.getElementById("dat").value;
  return res;
}

//メイン処理
function strChange(){
  //変数初期化
  var alpArr = {A:1,B:2,C:3,D:4,E:5,F:6,G:7,H:8,I:9,J:10,K:11,L:12,M:13,N:14,O:15,P:16,Q:17,R:18,S:19,T:20,U:21,V:22,W:23,X:24,Y:25,Z:26}
  var dat = getChar();
  var afterText = "";
  var colArr = [];
  var colNum = 0;
  var colLength =0;
  var alpLength = 26;

  if(dat===""){
    alert("空白です");
  }else if(isHanEisu(dat)==false) {
    alert("半角英数以外の文字が含まれています");
  }else {
    row = dat.replace(/[^0-9]/g,'');
    col = dat.replace(/[^A-Z]/g,'');

    //一文字ずつバラバラに
    var beforeTextArr = String(col).split('');
    for (var i = 0; i < beforeTextArr.length; i++) {
      colArr[i] = beforeTextArr[i];
    }

    //列座標の文字列を数字に変換
    colLength = colArr.length;
    for(var j=0; j < colLength; j++){
      colNum += alpArr[colArr[j]]*(26**(colLength-1-j))
    }
    //アウトプットの文字列を作成
    res = "cells("+row+","+colNum+")"

    //output
    //テキストボックスオブジェクトを取得する
    var resTxtbox = document.getElementById("resBox");
    //値をセットする
    resTxtbox.value = res;

  }
}