No.2ベストアンサー
- 回答日時:
文字列では、もちろんsmall関数で計算する事はできません。
文字列でそういう計算ができる関数等もありません。
まぁプログラミングに慣れた人なら、バブルソートとかちょこちょこっと実装してしまってやっつけるのもありでしょうが、そこまでしなくても例えばセルに一回データを書き出してエクセルに並べ替えさせてしまい、所定の位置のデータを拾ってくるなんて方法もあります。
ただし。
>私のエラーが起きていた中身ですが、英字を混んでいました。
>1234abcdの如くにです。
こういった「文字列の並べ替え」では、よほど条件が整ってない限り大概、大小の判定を失敗します。
上手くいかない例:
sub macro2()
dim a(15) as variant
dim i
for i = 0 to 15
a(i) = i & "abc"
next i
with range("Z1:Z16")
.value = application.transpose(a)
.sort key1:=range("Z1"), order1:=xlascending, header:=xlno
range("A1") = range("Z7").value
’.clearcontents
end with
end sub
上手くいく例:
sub macro3()
dim a(15) as variant
dim i
for i = 0 to 15
a(i) = format(i, "000") & "abc"
next i
with range("AA1:AA16")
.value = application.transpose(a)
.sort key1:=range("AA1"), order1:=xlascending, header:=xlno
range("A1") = range("AA7").value
’.clearcontents
end with
end sub
改めてあなたの「実際のデータ」をしっかり調べ、「どれが欲しい」のか、どうしてその順になるのか、キチンと整理してからそれをマクロに焼きなおすように考えてみて下さい。よくわからないときは、これ以降は確かに別のご相談内容と思いますので、何をしたいのか事実を添えて新しいご相談として投稿してみて下さい。
何回も有り難うございます。
>文字列では、もちろんsmall関数で計算する事はできません。
>文字列でそういう計算ができる関数等もありません。
了解です。
>まぁプログラミングに慣れた人なら、バブルソートとかちょこちょこっと実装してしまって
>やっつけるのもありでしょうが、そこまでしなくても例えばセルに一回データを書き出して
>エクセルに並べ替えさせてしまい、所定の位置のデータを拾ってくるなんて方法もあります。
まさに、ご指摘の方法とは違いますが、別のやり方で解決していました。
そして、smallを見つけたので使ってみようと思いやってみた。
ということです。
現在のやり方なら、英数字混在でも可能です。
現状維持としておきます。
少なくとも、「ローカルウインドー」を知ったことが成果です。
お世話になりました。
No.3
- 回答日時:
こんにちは。
変数の、hauseというものは、何の略か分かりませんが、Option Explicit をつけたらいかがですか?
基礎的な書き方を身につけたほうがよいですね。カウンター変数や特別の変数以外は、大文字・小文字を混ぜるなどします。定数は、大文字だけです。今回は、単に綴りが違っているだけの話だと思います。
'//
Option Explicit
Sub Macro1()
Dim Hause(15) As Double
Dim i As Long
For i = 0 To 15
Hause(i) = i
Next i
Range("A1").Value = Application.WorksheetFunction.Small(Hause, 7) 'houseではない。
End Sub
'//
No.1
- 回答日時:
>WorksheetFunction Smallでプロパティが取得できません
症状としては、変数hauseに数字を代入できていない(7個に足りない)ときの状況に合致します。
作成例:
Sub macro1()
Dim hause(15) As Variant
Dim i
For i = 0 To 15
hause(i) = i
Next i
Range("A1") = Application.WorksheetFunction.Small(hause, 7)
End Sub
必ず一度このマクロを実際にあなたのエクセルで作動させて、結果を確認してください。
そのうえで、あなたの動かないマクロをステップ実行させながら、とりあえずローカルウィンドウなどでhauseの中身にキチンと「数字が15個入ってる」かどうか、しっかり目で見て確かめてみてください。
早速、かつ、何時も有り難うございます。
お教えの例をやってみました。
綺麗に終了し、6が表示されました。
今回、「ローカルウインドー」なるテクニックを知りました。
今後使わせていただきます。
こんなことを知っていればこれまでに苦労しなかったと思える場面がかなりあったと
悔やんでいます。
本題ですが、
どうもsmallは数字しかダメみたいです。
私のエラーが起きていた中身ですが、英字を混んでいました。
1234abcdの如くにです。
variantという定義がエラーにならなかったので、okと思っていました。
私のexcelでも全てを数字にしたらノーマルに終了しました。
ということで、
今回の直接原因は分かった気がしますが、
英字も含めて昇順を決める命令/関数は存在するのでしょうか。
改めての質問はここを閉め、別にした方が宜しいのでしょうか。
とにかく有り難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaのvlookup関数エラー原因を教えていただけないでしょうか。 3 2022/04/25 16:16
- Visual Basic(VBA) Sheet1のA列にコードB列にメアド、Sheet2のB列にコード一覧とD列にメアド一覧があり、Sh 3 2022/10/19 11:57
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) VBAでのMATCH関数 3 2022/10/17 19:06
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
-
4
[Ctrl]+FをVBAで表現
Visual Basic(VBA)
-
5
エクセルVBAのIf,Then 構文でOr条件とAnd条件の結合方法?
Excel(エクセル)
-
6
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
7
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
8
配列に中で一番小さい値を教えてくれる関数ありませんか/アクセス、VBA
PowerPoint(パワーポイント)
-
9
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
10
数値に見えるものはすべて数値として並べ替えを行う
Excel(エクセル)
-
11
マクロの「SaveAs」でエラーが出るのを解消したいです(再)
Visual Basic(VBA)
-
12
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【VBA】 通し番号の入力について
-
結合したセルの並び替え(エク...
-
配列内データにsmallを使う
-
VBAで保存しないで閉じると空の...
-
Excel マクロの編集がグレーに...
-
Excelのマクロでボタンを押すと...
-
複数のマクロボタンをまとめて...
-
エクセルで、「いいね」のよう...
-
エクセル関数>参照ファイル名...
-
WPSOffice_マクロの有効化について
-
エクセルの、記録を終了したマ...
-
エクセル マクロ名にブック名...
-
【Excel VBA】マクロでExcel自...
-
Excel:マクロを消す方法教えて...
-
エクセルの表を複数枚印刷した...
-
【Excel】マクロの保存先について
-
別シートのマクロボタンをマク...
-
エクセル ボタンに設定したマク...
-
エクセルファイルを値でのみし...
-
excelで直前に参照していたブッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
結合したセルの並び替え(エク...
-
配列内データにsmallを使う
-
【VBA】 通し番号の入力について
-
Exelの表を以下のように全行組...
-
楽天RSS エクセルのマクロで10...
-
UWSCでie内のデータを取得しエ...
-
Excel VBA データ差し込みPDF...
-
Excel vba PDF 複数ファイルを...
-
VBAで保存しないで閉じると空の...
-
WPSOffice_マクロの有効化について
-
Excel マクロの編集がグレーに...
-
エクセル関数>参照ファイル名...
-
Excelのマクロでボタンを押すと...
-
エクセルの表を複数枚印刷した...
-
エクセルの、記録を終了したマ...
-
エクセル マクロ名にブック名...
-
マクロの保存先、開いてるすべ...
-
複数のマクロボタンをまとめて...
-
エクセルで、「いいね」のよう...
-
【Excel VBA】マクロでExcel自...
おすすめ情報