○第25回目 ジャンプのマクロ
同一シート内への任意場所へジャンプするマクロを考えます。
ジャンプ先の与え方は、列-行とします。26-15とかですね。
いやいや、列記号のほうがやりやすい。すると、aa-15とかになりますね。
今カーソルがあるセルに注目して、そのセルと同じ列で行を指定するとか、同じ行で列だけ指定する、というものありそうですね。
これらを全部まとめてしまいましょう。
ポイントは、入力値の分析・分解と、ジャンプです。
ジャンプはそのセルに行けばいいのですから、
Cells(gyo, retu).select で十分ですね。
入力形式は、27-20、AA-20、27-、AA-、-20となります。後半の三つは、指示されていない部分はアクティブセルの行または列を使います。
アクティブセルの座標は、
ActiveCell.Select
bbb = Selection.Address
retu = Range(bbb).Column
gyo = Range(bbb).Row
でした。
さて入力値の分解です。
"-"の位置が問題になります。
"-"の位置は、
p1 = InStr(hh, "-")となります。
ない場合は、指定間違いですので、処理を終了させましょう。 exit sub
位置が1の場合は、列の省略形です。
位置が1でない場合は、その位置が、文字の長さと一致していると、行の省略形となります。
文字の長さは、 len(AA) となります。
列部分が数値でなければ、列記号による指定です。これは、
if IsNumeric(Left(hh, p1 - 1)) = true で判断できます
もう一つ大切なのは、列記号を列番号に変える方法です。
列記号がAAにはいっているとすると、
Range(AA & "1").column で列番号になります。
あとは、変数名の整合性と、ロジックの組み立てだけです。
がんばって作ってみてください。

0 件のコメント:
コメントを投稿