質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

1回答

875閲覧

エクセルVBAについての質問

退会済みユーザー

退会済みユーザー

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/07/01 03:30

二次元配列を用いてセル上に示された要素の行における最大値の求め方を教えてほしいです。
下の時、最大値は182、63、31となる。これを表すプログラムの作成方法を教えてほしいです
|列1|列2|列3|
|:--:|--:|
|100|182|67|
|63|32|52|
|29|30|31|

Sub max()
Dim a(2, 2) As Double
Dim i As Integer
Dim j As Integer
Dim x As Integer
Dim y As Integer

For i = 0 To 1
For j = 0 To 1
a(i, j) = Cells(i, j).Value
Next j
Next i

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

radames1000

2020/07/01 04:08

一行だけなら最大値を求めることはできますか? それから行を増やす方法を考えてみましょう。
退会済みユーザー

退会済みユーザー

2020/07/01 04:17

すみません。わからないです。。。
sousuke

2020/07/01 05:03

「最大値を表す」というのはどういう方法で実装するか決まっていますか?
退会済みユーザー

退会済みユーザー

2020/07/01 05:13

特に決まってはいませんが、ForやLoop文などでしていただいたほうが嬉しいです。
sousuke

2020/07/01 05:44

いえ、そういうことではなくて「メッセージボックスで1行ずつ最大値を表示する」とか。 「最大値を取得する方法」ではなくて「取得した最大値をどうすればいいのか」ということです。
退会済みユーザー

退会済みユーザー

2020/07/01 05:47

取得した最大値は表の横のセルに入れてほしいです。 解釈を間違えてしまい、すみません。
hatena19

2020/07/01 06:41

関数を使えば一発で求められますが、関数の使うのはありですか。 なしの場合、その理由も提示してもらえるとより適切な回答がつくと思います。 (例えばVBAプログラミングの学習目的とか)
DreamTheater

2020/07/01 07:00

学習目的でないのなら、関数で解決できますね。 VBAで実装する場合でも、二次元配列はマストではありません。 「二次元配列を使用してVBAで実装する」ことは質問の前提条件なのでしょうか?
退会済みユーザー

退会済みユーザー

2020/07/01 07:00

できれば、知識の幅を広げるためにも関数は使わずにお願いしたいですが、関数を使っていただいても大丈夫です。よろしくお願いします。
DreamTheater

2020/07/01 07:03

最大値を表示するセルでMAX関数を使うだけです。 MAX関数の使い方くらいはご自身で調べましょう。
退会済みユーザー

退会済みユーザー

2020/07/01 07:06

VBAで取得する方法を教えていただきたいです。
DreamTheater

2020/07/01 07:09

二次元配列も必須ですか?
退会済みユーザー

退会済みユーザー

2020/07/01 07:16

はい すみませんがよろしくお願いします
guest

回答1

0

もう少し日本語で「最大値を求める」過程をまず日本語で説明できるようになったほうがいいです。
提示のコードも「何をしているか」過程を説明できないとダメです。
途中結果をMsgboxなどで前に表して実際にみるといいかと思います。

vba

1Sub max() 2 Dim a(2, 2) As Double 3 Dim i As Integer 4 Dim j As Integer 5 Dim x As Integer 6 Dim y As Integer 7 8 For i = 0 To 2 9 For j = 0 To 2 10 y = Cells(i + 1, j + 1).Value 11 If (MsgBox("「" & x & "」より「" & y & "」の方が大きいですか?" _ 12 , vbYesNo + vbDefaultButton2 + vbQuestion, "確認") = vbYes) Then 13 ' a(i, j) = Cells(i, j).Value 14 x = y 15 End If 16 Next j 17 MsgBox i + 1 & "行で一番大きいのは「" & x & "」でした。" 18 x = 0 19 Next i 20 21 MsgBox "おわり" 22End Sub

投稿2020/07/01 07:01

sousuke

総合スコア3828

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/07/01 07:10

ありがとうございます。 msgboxで適宜見てみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問