人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ExcelのVBAモジュールの記述方法についてお伺い致します。

今、x軸としてB12から右のセルに向けて整数1、2、3、・・・が入っています。
また、y軸としてA13から下のセルに向けて整数1、2、3、・・・が入っています。

さて、座標(2、1):C13 の値を 座標(1、2):B14 に出力する
座標(3、1):D13 の値を 座標(1、3):B15 に出力する
・・・
座標(m、n) の値を 座標(n、m) に出力する

ということを実現するには、どのようにVBAを記述すればよいでしょうか?
(ただし、出力するのはx軸とy軸のMAX値まで)

たびたびの質問でごめんなさい!VBA初心者でして皆目わからず・・・。
どうぞよろしくお願い致します。

●質問者: yoshifuku
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:Excel Max VBA セル モジュール
○ 状態 :終了
└ 回答数 : 5/7件

▽最新の回答へ

1 ● ma2ma2
●16ポイント

http://www2s.biglobe.ne.jp/~SATSYS/cell.html

シート・セル

行列入替 ホントに出来るか検証してないけど^^;

右クリックで貼り付けるときに「形式を選択して・・・行列を入れ替える」ってことと同じことをしたいんですよね。

ループぐるぐる回しながらよりこっちがスマートかなぁ

◎質問者からの返答

あ、参考にしてみますー!


2 ● atsuosan
●16ポイント

http://www.yahoo.co.jp/

Yahoo! JAPAN

Sub aaa()

Dim i As Integer

Dim j As Integer

i = 3

j = 13

Do While IsNull(Cells(12, i)) = False And Cells(12, i) > 0

If j > i + 10 Then

i = i + 1

j = 13

Else

Cells(i + 11, j - 11) = Cells(j, i)

j = j + 1

End If

Loop

j = 1

End Sub

Doの条件の部分は、12列目の軸に0が入る事は無いという前提で書いています。MAX値までというのがはっきり分からなかったので…。都合に応じてここの条件を書き換えて下さい。

◎質問者からの返答

ありがとう!!!ちょっとやってみます!!


3 ● cx20
●16ポイント

http://www.hondarer-soft.com/cx/pukiwiki/pukiwiki.php?Memo%2F200...

[hondarer-soft] to [cx20.main.jp]

URL にソースを貼り付けておきました。

こんな感じでしょうか。

’ 縦軸と横軸を入れ替えるサンプル

Sub XYSwap()

Const X_MAX = 5 ’ X軸の最大値

Const Y_MAX = 5 ’ Y軸の最大値

Const X_BASE = 2 ’ X軸のベース

Const Y_BASE = 13 ’ Y軸のベース

Dim nX

Dim nY

Dim nValue

’ 横軸(X軸)のループ

For nX = 0 To X_MAX - 1

’ 縦軸(Y軸)のループ

For nY = nX To Y_MAX - 1

’ 座標をスワップ

nValue = Cells(nY + Y_BASE, nX + X_BASE)

Cells(nY + Y_BASE, nX + X_BASE) = Cells(nX + Y_BASE, nY + X_BASE)

Cells(nX + Y_BASE, nY + X_BASE) = nValue

Next

Next

End Sub

◎質問者からの返答

これもやってみますっ☆


4 ● atom2
●16ポイント

http://www.google.co.jp/

Google

URLはダミーです。

こんな方法ではどうでしょうか?

For y = 2 To 10: Cells(1, y) = Cells(y, 1): Next

◎質問者からの返答

うーん、ちょっとダメそう・・・。


5 ● ozonepapa
●16ポイント

http://d.hatena.ne.jp/ozonepapa/

小曽根パパ

URLはダミーです。

職場からのアクセスなので、コメントはありませんが、これでOKでは。

Sub sub1()

Dim m As Integer

Dim n As Integer

Dim m_max As Integer

Dim n_max As Integer

m_max = 5

n_max = 5

For m = 1 To m_max

For n = m + 1 To n_max

Cells(n + 12, m + 1) = Cells(m + 12, n + 1)

Next n

Next m

End Sub

◎質問者からの返答

できました!!皆様ありがとー☆

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ