[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/06 20:10 / Filesize : 248 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA質問スレ Part4



1 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 09:03:22 ]

ExcelのVBAに関する質問スレです

質問前に 【 >>2-3 】 あたりを良く読むこと

前スレ
pc11.2ch.net/test/read.cgi/tech/1180192018/


910 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 23:45:24 ]
Public i as Long

911 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 23:57:06 ]
>>910
おまえはすぐ上のレスも読めないのか

912 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 00:45:05 ]
iなのにLong(笑)

913 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 09:12:32 ]
>>912
910の案は間違っているからどうでもいいとして
i は Integer でも int でもなく Index のことだから型は関係ねえぞ

914 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 09:56:54 ]
もともとはintegerだし、Cとかでlong iとかやると変

915 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 11:06:42 ]
>>914
なんつーかそこまでして変数名を1文字にする意味がないと思うのは気のせい?

916 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 11:40:17 ]
日本語でOK

917 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 11:50:03 ]
>>915
気のせいじゃない
というか、誰も変数を1文字にする必要があるとか意味があるとかなんてことは一言も言ってない
単に状況によっては1文字変数にも不都合はないというだけの話

918 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 13:14:55 ]
そだね。For Nextのカウンターはiが普通
ハンガリアン狂いはリストでも聴いてなさい



919 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 13:17:59 ]
てっきりFor Nextかと思ったらそうじゃなかったか


920 名前:デフォルトの名無しさん [2007/12/10(月) 15:21:31 ]
すいません、ちょっと質問させていただきます。
ワークシート別に異なる編集処理を、同じ書式(同じメソッド名)で呼び出そうとしています。
現在、以下のように、Implementsを使用しようとしていますが、上手くいきません。

-ClassIF.cls- (PublicNotCreatable)
Public Function GetTestString() As String
End Function

-Sheet1-
Implements ClassIF
Private Function ClassIF_GetTestString() As String
  ClassIF_GetTestString = "てすと"
End Function

-ThisWorkbook-
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
  Dim TestIF  As ClassIF
  Set TestIF = Me.Worksheets.Item(1)
  MsgBox TestIF.GetTestString
End Function


921 名前:920 [2007/12/10(月) 15:24:16 ]
 (920のつづき)
上記のコードだと、コンパイルは通りますが、実行時に 「型が一致しません」 とエラーとなるので、
> Dim TestSh  As Sheet1
  Dim TestIF  As ClassIF
> Set TestSh = Me.Worksheets.Item(1)
  Set TestIF = Me.Worksheets.Item(1)
とすると、一旦エラーとなりますが、ステップ実行を継続すると以降は動くようになりました。
情けないのですが、何をどう間違えているのか、判断が付きません。

目的は、多数のシートの処理を同じ書式で呼ぶことです。
(シートが多く、今後メソッドも増加することが予想されるので保守性を高めるため。)

また、試しに、CallByName(Me.Worksheets.Item(1), "OwnerStr", VbMethod) を試したところ、
「メモリが不足しています。」 となりダメでした。(Public Function OwnerStr() を追加。端末メモリは1G)

環境は、WinXP SP2 + Office2003 VBA:6.4.8869 です。
なお、開発環境の制約上、VBが使用できません。 何らかのアイデアを頂ければ幸いです。


922 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 16:31:58 ]
良くわからんけど、set testif=shとやったらちゃんと動いたぞ

923 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 17:55:51 ]
>>922
ありがとうございます。こちらでも試してみたのですが、動いたり動かなかったりです。
こちらの環境では、初めは動いても、ファイルを保存して開きなおすと動かなくなります。
しかも、そうなると、再び動くようにするにはどうすれば良いか分からなくなってしまう状況です。

  Set TestIF = Sh
  Sh.Range("A1:E5").Value = TestIF.GetTestArray  ←例えば2次元配列を返す
とか書ければスッキリするんですけど、そもそも確実には動かないので使い物になりません・・・


924 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 20:14:19 ]
>>923
セキュリティの設定を変更しないとダメだが、一応これなら2007ではうまくいった
2003は持ってるけどインスコめんどいので試してないからやってみれ
-ThisWorkbook-
Private Sub Workbook_Open()
On Error GoTo SECURITY_ERROR
Dim p As Variant
For Each p In ThisWorkbook.VBProject.VBComponents
Debug.Print p.Properties("Name").Name
Next p
Exit Sub
SECURITY_ERROR:
'support.microsoft.com/kb/282033/ja
Call MsgBox("セキュリティ設定によりマクロからVBAプロジェクトへのアクセスが禁止されています。", vbCritical, "セキュリティ エラー")
End Sub


925 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 20:29:36 ]
>>923
「動かなかったり」って時は、VBAProjectがコンパイルされてない時とイコールだったりしない?

926 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 21:16:12 ]
うーん、何かそのやり方違和感があるなぁ。
class Worksheet implements IFooじゃないところが。つまり、implementsを書かないworksheetが存在してもOKなところ。
じゃぁ、どうやればいいかって聞かれると、即答できない・・・

927 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 21:25:24 ]
iの型は何にすればいいんですか?

928 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 21:33:46 ]
>>927
整数型ならなんでもいいよ



929 名前:920 mailto:sage [2007/12/10(月) 21:33:47 ]
>>924
動きました! ありがとうございます!
923みたいに、配列を返してセルをまとめて埋めちゃうような処理でもバッチリ動きました。
処理を目にしても、なおピンと来ませんが、前もって1度アクセスしとくって感じですかね。
凄いなー・・・ そんなの絶対に分からないです。俺ももっと精進します・・・
応用を考えて、色々試して見ます。本当にありがとうございました。

>>925
コンパイルが通らないときは動きません。 通っても一旦終了するとダメだったりしてました・・・

>>926
そうなんですよね、”何となくダメっぽい” んですけど、どうすればいいかサッパリな事が多くて。


930 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 21:34:02 ]
相撲の世界では、雲龍型もしくは不知火型のどちらかだよね。

931 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 21:53:36 ]
今度からiは整数型にします><

932 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 22:23:26 ]
>>929
アフォか
実体を取得してないのにインプリメントしただけで参照が通るわけネーダロ
まあ、モジュール行ったり来たりの実用性に乏しいところを見ると、単なる実験だろうけど

以下のコードをSheet1の方に記述してから、このプロパティを呼び出してみ
Public Property Get MyEntity() As ClassIF
Set MyEntity = Me
End Property

それにしてもiはインデックスとか1文字変数野郎にはキチガイが多いな(~ε~;)


933 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 22:49:15 ]
iは整数型なんですってば><

934 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 22:52:11 ]
932が見えない
またキチガイが来てるのかw

935 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 23:01:11 ]
>>926
ベストなやり方とは言えないが、これで現状の処理に合わせたまま対応できるな
'参照設定 TypeLib Infomation
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Dim m As CodeModule
Dim c As ClassIF
Dim t As TLIApplication
Dim v As Variant
Set t = New TLIApplication
Set c = New ClassIF
Set m = ThisWorkbook.VBProject.VBComponents(Sh.Name).CodeModule
Call m.AddFromString("Implements ClassIF")
For Each v In t.InterfaceInfoFromObject(c).Members
Call m.CreateEventProc(v.Name, "ClassIF")
Next v
End Sub

936 名前:920 mailto:sage [2007/12/10(月) 23:08:18 ]
>>932
機能を増やした時の保守性のため、ClassIF を抽象クラス的に使おうとしてます。
なので、できれば Sheet1 に外部からアクセス(Public定義)させたくないのです。
従って、ClassIFを返す意味がないのです。
それから、多分それだと動きません。(そもそも実行時に MyEntityを取得できない)
意図を読み違えていたらすいません・・・。


937 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 01:25:29 ]
アクセルロッドのコンテストを学校の課題でしており、
Sub Dilemma_of_Prisoners()
Dim TE1 As Boolean, TE2 As Boolean, preTE1 As Boolean, preTE2 As Boolean
Dim I As Integer, N As Integer
point1 = 0
point2 = 0
N = 5 ' 繰り返し回数
For I = 1 To N
TE1 = Player1(I, preTE2)
TE2 = Player2(I, preTE1)
preTE1 = TE1
preTE2 = TE2
If TE1 Then
If TE2 Then
point1 = point1 + 3
point2 = point2 + 3


938 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 01:25:35 ]
Else
point1 = point1 + 0
point2 = point2 + 5
End If
Else
If TE2 Then
point1 = point1 + 5
point2 = point2 + 0
Else
point1 = point1 + 1
point2 = point2 + 1
End If
End If
Next I
MsgBox "プレイヤー1=" & point1 & vbCrLf & "プレイヤー2=" & point2
Range("A1") = "プレイヤー1=": Range("C1") = point1
Range("A2") = "プレイヤー2=": Range("C2") = point2
End Sub



939 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 01:26:20 ]
↑判定ルーチン


'人間がプレイする場合のルーチン
Private Function Player2(kaisu As Integer, TE As Boolean) As Boolean
' プレイヤーが人間の場合
If kaisu = 1 Then
Reply = MsgBox("協調しますか?", vbYesNo, "(" & kaisu & ")回目")
Else
If TE Then
aite = "「協調」"
Else
aite = "「裏切り」"
End If

Reply = MsgBox("前回、相手は" & aite & "でした。" & vbCrLf & _
"協調しますか?", vbYesNo, "(" & kaisu & ")回目")
End If

If Reply = vbYes Then
Player2 = True
Else
Player2 = False
End If
End Function

940 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 01:28:58 ]
↑人間が入力する際のルーチン

コンピューター側の行動を書きに沿って作っているのですが、

1.しっぺ返し戦略
2.「裏切り」戦略
3.罰戦略
4.寛容戦略
5.でたらめ戦略
6.独自の戦略

941 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 01:29:30 ]
裏切り
Private Function Player1(kaisu As Integer, TE As Boolean) As Boolean
If kaisu = 1 Then
Player1 = False
End If
End Function

寛容
Private Function Player1(kaisu As Integer, TE As Boolean) As Boolean
If kaisu = 1 Then
Player1 = else
End If
End Function

942 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 01:30:32 ]
しかできず、他の方法に関して模索しております。

お知恵を頂けないでしょうか?

お願いいたします。


943 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 06:40:31 ]
★4 とりあえず、Excelのインスタンスを作らずにVB6で出来ることは全てスレ違いだと思ってください。

944 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 11:52:41 ]
>>920
moduleに、
Public Function GetTestString(ByRef w As Worksheet) as Hoge
 Select Case w.Name
  ・・・
 End Select
End Function
とかやったほうが、何の問題もなく、すっきりしてる気がする。

945 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 12:57:52 ]
>>944
これはひどいww
これじゃプライベートなデータを全部公開しないと処理ができないじゃないかw

946 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 13:06:12 ]
え、まさかシートのコードモジュールをメインでプログラミングしてたりするのか?

947 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 13:16:31 ]
あー、違和感の原因がやっとわかった。
俺、アドインベースが基本だから、シートにコード書くこと今までほとんどなかった。

948 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 15:03:18 ]
カプセル化が必要な場合は、俺ならメンバにワークシートを持つクラスを定義する。



949 名前:デフォルトの名無しさん [2007/12/11(火) 16:36:37 ]
(コントロールツールボックスでは無い方の)
コントロールのオブジェクト名と値をVBAで
参照することはできますか?


950 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 16:49:14 ]
もっと具体的に

951 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 17:35:17 ]
>>946

> え、まさかシートのコードモジュールをメインでプログラミングしてたりするのか?
これをやると何か得するのですか?

952 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 17:41:36 ]
得しないよ?
つか、何で俺にそれ聞くの?

953 名前:949 [2007/12/11(火) 17:45:13 ]
>>950
フォームコントロールのオプションボタン1と2を
ブックを開いたとき、クリア(押されてない状態)に
したいのですが、コントロール名がないためやり方がわからなくて・・
後出しですみません。

954 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 17:51:11 ]
うーむ、UserForm1.OptionButton1.Value=0とは違うのか?

955 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 18:00:48 ]
フォームツールボックスのオプションボタンをシートに配置して使ってます。
こいつのプロパティを開いてもコントロールの名前がないのです・・

956 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 18:06:52 ]
>>953
Worksheets(1).Shapes(1) とかでアクセスできる
名前はないからリンクしているセルの番地で特定するとか
つけてるラベル名でやるとか、最悪インデックスを直値でやる
以下はセルA1とリンクしているコントロールを見つけだす例

For Each v In Worksheets(1).Shapes
 If v.ControlFormat.LinkedCell = "$A$1" Then
 End If
Next v

957 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 20:42:34 ]
シートにコードを書くのってフォームを呼び出すときぐらいっしょ

958 名前:920 mailto:sage [2007/12/11(火) 21:08:22 ]
みなさん、昨日はありがとうございました。
920のその後ですが、ゴリゴリ処理を追加して起動すると、再度エラーが起きるようになりました。
  For Each p In ThisWorkbook.VBProject.VBComponents
     Debug.Print p.Properties("Name").Name
  Next p
ここで、「'Properties'メソッドは失敗しました: '_VBComponent'オブジェクト」のエラーとなります。
しかも、確認のためステップ実行するとエラーは起きません。意味も分からず、試行錯誤の末、
  For Each p In Me.VBProject.VBE.CodePanes
     s = p.CodeModule.Name
  Next p
のように修正したところ、今のところ何故か動いてます。 理屈はまだまだサッパリです・・・。
一応、ご報告まで。




959 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 22:15:24 ]
他の人も言ってるけど、そのやり方止めたほうが良いと思うよ。
まぁ、将来にわたって自分ひとりしか使わないし、シートも追加しないしってことなら止めないが・・・。

960 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 22:19:00 ]
>>955
或る程度、分かってる人みたいなので手抜き

Set objSheet = Excel.Worksheets("ターゲットシート名とか")
For Each objShape In objSheet.Shapes
If objShape.Type = msoFormControl Then
If objShape.FormControlType = xlOptionButton Then
objShape.ControlFormat.Value = xlOff
End If
End If
Next

msoFormControlは結構、有名だと思ったけどそうでもないのね
デタラメこいてクサレコードを教えるヤツも出るぐらいだし(~ε~;)


961 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 22:24:05 ]
あ、あぼんされてる人だ

962 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 22:55:25 ]
草レコード??
と思ってググったことはワイヤード以外ではナイショ♥
d.hatena.ne.jp/tonotonotono/20060707

963 名前:デフォルトの名無しさん [2007/12/11(火) 23:41:06 ]
r AS Range
n AS Integer
(rにはセル範囲が与えられているとして)
n=r.Areas.Columns(1).Count←行数を取得したい

どうすれば行数を取得できるでしょうか?

964 名前:920 mailto:sage [2007/12/11(火) 23:42:45 ]
>>959
ありがとうございます。おかげさまで、考え方が良くないという認識は持てました。
ただ、どうも"何故"という興味が消えなくてw 不具合か、使い方か、追求してみたいです。
ご忠告どおり、個人レベルは超えないようにして、
948さんの考え方等も色々試してみようと思います。 みなさん、ありがとうございました。


965 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 00:02:00 ]
>>963
Set r = Range("a2:d11")
n = r.Rows.Count
Range("a1") = n

966 名前:デフォルトの名無しさん [2007/12/12(水) 00:20:21 ]
>>965
ありがとうございました。
d AS Variant
n=300←(データ数。可変する)
Redim d(n,2)
(省略)←dにグラフの値を代入する

Chart.add
Activechart.setsource
d←配列データをもとにグラフを作成するにはどうすればよいのでしょうか?

967 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 00:25:01 ]
oshietekun
shirabenai kara
oshietekun

968 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 00:42:13 ]
>>967
いや、一ヵ月前から調べたが解決できなかったのがたまたまこの2つだったのです。





969 名前:デフォルトの名無しさん [2007/12/12(水) 10:47:08 ]
if thenで改行するのと、そのまま書き続けるのって
ひょっとして全然違う?

970 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 10:58:04 ]
>>960
とんでもないクサレコードだなおいw
それじゃ手あたり次第に同種のコントロールを設定しちまうだろw


971 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 10:59:21 ]
>>970
じゃあお前が教えてやれ

972 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 11:38:33 ]
>>969
Excel総合相談所 62
pc11.2ch.net/test/read.cgi/bsoft/1195214565/522-524
ここら辺でやり取りされてたけど、一緒だと思う。

973 名前:デフォルトの名無しさん [2007/12/12(水) 11:57:42 ]
>>972
ありがとうございます!

もうひとつ、ついでによろしいでしょうか?
変数を使ったセルの選択で、結合されている場合の
やりかたが分かりません。

Range("B & i : B & i+1").Select: triggerMsg = Selection.Value
もしくは
Range(""B" & i : "B" & i+1"").Select: triggerMsg = Selection.Value
これだと、ダメなんですよね。

974 名前:973 [2007/12/12(水) 12:09:48 ]
ひょっとして、これであってます?
dim range1 as range
Set range1 = Range("B" & i).MergeArea

975 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 12:57:10 ]
>>973
くくってる範囲が違う
Range("B" & i & ":B" & i+1")


976 名前:デフォルトの名無しさん [2007/12/12(水) 13:00:04 ]
>>966

> d AS Variant
> n=300←(データ数。可変する)
> Redim d(n,2)
> (省略)←dにグラフの値を代入する

> Chart.add
> Activechart.setsource
> d←配列データをもとにグラフを作成するにはどうすればよいのでしょうか?

配列データからグラフ作成、以外と難しいね

977 名前:デフォルトの名無しさん [2007/12/12(水) 13:03:16 ]
msgboxのvbokcancelで、キャンセルを選んだ場合に返される
値って、「vbcancel」なのか「false」なのか、どっちですか?

978 名前:973=977orz [2007/12/12(水) 13:06:09 ]
>>975
ありがとうございます!

こう?
Range("B" & i & ":B" & i + 1).Select



979 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 13:07:20 ]
ExcelのChartではできません。あきらめましょう。

980 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 13:08:47 ]
>>977
RTFM

981 名前:973 [2007/12/12(水) 13:18:44 ]
Sub yoyoyo()
Range("A" & 1 & ":A" & 2).Select: hoge = Selection.Value
MsgBox hoge
End Sub

型が違うって出てしまいます。
結合されたセルの値を取り出すには、
特別な作業が必要なんですかね。

982 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 13:43:20 ]
>>981
VBAの本買ってこい

983 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 13:48:02 ]
>>981
いつまでその調子で質問し続けるつもりだ?

984 名前:973 [2007/12/12(水) 13:50:13 ]
すんません

985 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 13:53:00 ]
>>981
一旦選択状態にする意味が分かんない。それすら分かってないレベルなら>>982
まとめて取得したいって意味なら、2次元配列で受け取る方法を考える。
つか、クイックウォッチを見ながらやってみ?


986 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 13:53:44 ]
>>984
もし本を読んだ上で質問していると思うけど、複数冊参考になる本は用意しておくべきだよ。
その本ごとに強調する部分は違うからね。
とりあえず本屋へGo!

987 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 13:55:16 ]
>もし本を読んだ上で質問していると思うけど
日本語でOK

988 名前:973 [2007/12/12(水) 15:55:32 ]
ありがとうございます
色々やってたら出来ましたぁ



989 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 16:25:37 ]
>>981

> Sub yoyoyo()
hoge AS Range
Set hoge = Range("A1:A2").Value
> MsgBox hoge
> End Sub


990 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 16:30:17 ]
>>989

>>981
修正。

Sub yoyoyo()
Dim hoge AS variant
Redim hoge(1,2)→行と列は忘れた。
Set hoge = Range("A1:A2").Value
MsgBox hoge
End Sub


991 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 16:34:05 ]
>>979

> ExcelのChartではできません。あきらめましょう。
どおりで一ヵ月ネットで探してもでてこないわけですね・・

ありがとうございました

992 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 16:44:29 ]
あきらめてシートに転記してグラフ化するがよろし

993 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 16:46:36 ]
うわ、次スレの季節。
はよせんと落ちてしまう〜、誰かヨロ

994 名前:981 [2007/12/12(水) 16:56:31 ]
>>990
助かります

995 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 17:08:28 ]
>>981
hogeは2次元配列になっている
Sub yoyoyo()
Range("A" & 1 & ":A" & 2).Select: hoge = Selection.Value
MsgBox hoge (1,1) & vbLf & hoge(2,1)
End Sub
としないと動かない。
だがちょっと待って欲しい。変数の宣言をした方が良いんではないだろうか。
Sub yoyoyo()
Dim hoge As Variant
hoge = Range("A1:A2").Value
MsgBox hoge (1,1) & vbLf & hoge(2,1)
End Sub
とすればSelectしなくても良いのではないかという声が聞こえなくもない。

996 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 17:24:03 ]
A1とA2は結合されてるのか。
だったら
Sub yoyoyo()
Dim hoge As Variant
hoge = Range("A1").Value
MsgBox hoge (1,1)
End Sub

997 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 17:26:18 ]
ひとりごとはチラ裏な

998 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 17:29:35 ]
Excel VBA質問スレ Part5
pc11.2ch.net/test/read.cgi/tech/1197448064/



999 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 17:32:23 ]
すまん間違いな
Sub yoyoyo()
Dim hoge As Variant
hoge = Range("A1").Value
MsgBox hoge
End Sub

MsgBox Range("A1").Value
の1行でもいいぞ。

1000 名前:1000get [2007/12/12(水) 17:45:26 ]
>>999
結合されていると、なぜかselect後の値取得が
使えないんです。

range("A1").select:hoge=selection.value

はエラーになる。

1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<248KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef