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


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

●EXCEL・VBA質問スレ Part2●



1 名前:デフォルトの名無しさん [2007/05/27(日) 00:06:58 ]
・まじめにExcelの機能を追及してみようと思う奇特なひと
・スキルがないのに無理やりVBAの仕事を押し付けられた普通のひと
・VBAなんていまさらやりたくないのに業務で仕方なく使っているひと
・とにかく漏れにこんな仕事まわすなと怒っているひと
そんなM$大好きなひとからアンチM$なひとたちまで幅広くカバーするスレです

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

96 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 06:51:22 ]
他のドロー系ソフトを使ってGIF→WMFもしくはEMF化すれば大丈夫か。
メタファイル系ならオートシェイプと同じ扱いになるので

試しに「GIF WMF 変換」や「GIF EMF 変換」でぐぐってみたら
フリーソフトが結構あるな。

97 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 16:18:34 ]
APIがあるんだけど難しいよ

98 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 21:38:45 ]
>>95-97
シェイプが何かすらわからないド素人ですが、何から始めたら良いかも
分からないと言う状況だったのでググって探す取っ掛かりになりました。

時間は掛かると思いますが挑戦してみます。

99 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 10:27:05 ]
ググってもわかりませんでした。教えてください。

テキストに
AA a: 01 b: 01,02,03,04 c:
AB a: 01,02 b: c:01





と書いてあるものがあります。
AA,ABともに、aの後に続く数字が全部でいくつあるのが、
bの後に続く数字がいくつあるのかという風に抜粋して、
数えた数字をエクセルに書き換えたいのですが
どうもがいてもわかりません。

どなたかおしえていただけませんでしょうか?
説明下手でごめんなさい。




100 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 12:02:43 ]
>>99
もう少し具体的なテキストと、その場合の要求する結果のサンプルをよろしく。

101 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 12:56:28 ]
Excel関係なく、単純なテキストファイル解析でしょ。
単にその結果をExcelシートに出力するってだけの話なので、セルへの代入以外はVBAの分野じゃないよな。>>16

ということで、このスレの範疇の部分だけ答えると、セルへの代入は、代入するセルのRangeオブジェクトに対して
「.Value = 代入値」ですよ、ってことで終わりだな。あとはスレ違いなのでよろしく。

他の人にも言っておくが、Excel付属のVBAでやるにしても、Excelのインスタンス使わずにVBScriptでもVB6でも出来るようなことは、
 VBA = [VB]言語による[A]pplication(Excel)操作
の分野ではなく、VB言語の分野なので、ここではスレ違いになるってことを覚えておいてね。
>>1に書いてある通り、VBA分野の話ならどんな事情でVBA使ってようと構わないけど、VBAの分野じゃないことをあえてVBAでやってるだけの奴はNGね。

102 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 13:03:14 ]
頭固いなぁ

103 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 13:10:35 ]
いや、そうでもないか

104 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 13:11:12 ]
>>99

まずテキストのまま正規表現使って全ての数字を消すと
AA a: b: ,,, c:
AB a: , b: c:
のようになる
エクセルにコピーして区切り文字を":"にすると
AA a|  b|,,, c|   |
AB a|, b|  c|   |
とセルが分かれ後は","の数を数えて+1する関数をVBAで
作ればOK



105 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 14:43:43 ]
>>104
それじゃ最初から数字がない場合と
数字が一つだけでカンマなしの
区別つかなくね?

106 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 17:49:21 ]
>>105
それではこんな感じで
a:->:に変換
[a-z]:->:

エクセルにコピーして区切り文字を":"にすると
|01  |01,02,03,04|   |
|01,02|        |01 |

Sheet2に
=CountData(Sheet1!A1)
=CountData(Sheet1!A2)
ドラッグして必要なとこまで埋める

関数
Function CountData(a As String)
sa = Split(a, ",")
b = UBound(sa)
If b < 0 Then
CountData = 0
Else
CountData = b + 1
End If
End Function


107 名前:デフォルトの名無しさん [2007/06/10(日) 18:48:31 ]
Vista Ultimate, Excel2007です。

コントロールのボタンを作成(貼付け)したところ、
マクロ名を入力するダイアローグが出てきて、マクロ名を入力しました
(そのボタンに対応する処理のマクロを事前に作っていたので)。

その後、TextBoxの処理をする必要が出てきたため、
Private Sub CommandButton1_Click()の編集画面を表示するために
開発→デザインモードをクリックして、ボタンをクリックしたのですが
Private Sub CommandButton1_Click()の編集画面が表示されません。

どういう操作をすれば
Private Sub CommandButton1_Click()の編集画面が表示されるのでしょうか。

よろしくお願いします。



108 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 00:57:26 ]
複数列のセルをフーリエ解析したいのですが、
A列からD列まで一列一列手動でやってマクロを記録したら下記のようになったのですが、
これをA列からIV列まで一気に行いたい場合にはどうまとめれば良いですか?


Application.Run "ATPVBAEN.XLA!Fourier", ActiveSheet.Range("$A$1:$A$256") _
, ActiveSheet.Range("$A$258"), False, False
Application.Run "ATPVBAEN.XLA!Fourier", ActiveSheet.Range("$B$1:$B$256") _
, ActiveSheet.Range("$B$258"), False, False
Application.Run "ATPVBAEN.XLA!Fourier", ActiveSheet.Range("$C$1:$C$256") _
, ActiveSheet.Range("$C$258"), False, False
Application.Run "ATPVBAEN.XLA!Fourier", ActiveSheet.Range("$D$1:$D$256") _
, ActiveSheet.Range("$D$258"), False, False

End Sub


109 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 01:57:51 ]
普通にやればいいだけだよ

110 名前:デフォルトの名無しさん [2007/06/11(月) 07:58:33 ]
VBAでFREQUENCY関数を使いたいのですが、
キーボード入力の時の”配列数式の入力”は、
VBAでは、どう記述すれば良いのでしょうか。

よろしくお願いします。


111 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 08:05:38 ]
つ FormulaArray

つーかVBAヘルプを 配列数式 で検索してみたらトップに出てくるじゃん

112 名前:110 [2007/06/11(月) 14:09:22 ]
>>111

レスありがとうございます


113 名前:107 [2007/06/11(月) 14:48:11 ]
現象の追加情報です。

デザインモードにして、コントロールにカーソルを合わせると、
ラベルやテキストボックスは、
カーソルが矢印付きの十字(コントロールを移動できる表示)に
変わるのですが、ボタンについては指の形のままです。

このデザインモード(ラベルにカーソルを合わせると矢印付きの十字に
変わる状態)のまま、カーソルをボタンの上に持って来てクリックすると
ボタンに関係付けられたマクロが実行されます。

これって正常な動作なんでしょうか?




114 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 20:40:20 ]
どうでもいい



115 名前:デフォルトの名無しさん [2007/06/12(火) 01:28:42 ]
質問です。
Excel2000で以下のようにあるブックから新しいブックを作り
セルをCopyメソッドを使用してコピーしようとすると
「RangeクラスのCopyメソッドが失敗しました」と
エラーになってしまうのですが
CopyとPasteメソッドをつかってそれぞれのブックを
Activateにしてコピーしないと無理でしょうか?


Dim xlsApp As Excel.Application
Set newBook = Excel.Application

With newBook

Set newBk = .Workbooks.Add

〜編集処理〜

Workbooks(ブック1名称).Activate

Workbooks(ブック1名称).Application.Worksheets(シート名).Range("A1:A20").Copy _
.Workbooks(ブック2名称).Application.Worksheets(シート名).Range("A1")

End With

116 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 02:40:26 ]
>>115
Set newBk = Workbooks.Add

Workbooks(ブック1名称).Worksheets(シート名).Range("A1:A20").Copy _
newBk.Worksheets(シート名).Range("A1")

こういうことか?


117 名前:デフォルトの名無しさん [2007/06/12(火) 17:02:19 ]
Excel2007です

新規ブックでシート上にシェイプを作成し、そのシェイプにマクロを登録します。
シェイプに登録したマクロはこれです。
sub a
thisworkbook.close
end sub

このシェイプをクリックするとエクセルが終了してしまいます。
「問題が発生したため・・・・」

この問題を回避する方法はありますか?


118 名前:項目によるセルの参照ないし選択? mailto:sage [2007/06/12(火) 19:21:52 ]
Excel2000のユーザーでVBAの入門者です。

[表]
列に最高気温、最低気温、平均気温という三つの項目を入れ 行に日付の項目を入れた表を
つくりました。下記はその具体例です。
A2 = "2007年1月1日", A3 ="2007年1月2日", A4 = "2007年1月3日",....(以後果てしなく続く)
B1 = "最高気温", C1 = "最低気温", D1 = "平均気温"

[VBAでやりたいこと]
例えば、2007年1月1日の最高気温の値をVBAで入力する場合に、A列の行から"2007年1月1日"
という値の入っているセル番号を探し、"最高気温"の項目と交わるセルをセレクトしたい。
セル番号で直接参照して選択させる方法だと汎用性がないので、項目によって参照させたいんです。

119 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 19:54:23 ]
>>117
そのマクロを実行しない

120 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 20:05:58 ]
>>118
A2を選択して
データ->フィルタ->オートフィルタ

121 名前:項目によるセルの参照ないし選択? mailto:sage [2007/06/12(火) 22:32:41 ]
>>120
助言して下さって、どうも有難う御座います。私の説明が間違っていたんでしょうか、
オートフィルタは私のやりたいこととはかなり違う気がします。
アクティブではなく「セレクト」という表現を使ったのがまずかったかもしれません。
正確な用語法が分からなくてすみません。

122 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 22:59:16 ]
>>121
セル番号で直接参照して選択させる方法って何?

項目で参照させたいならセルに名前をつければ?

123 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 00:43:57 ]
>>118
Find メソッドを使う
ワークシート関数のINDEX 、VLOOKUPを使う

124 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 09:07:26 ]
どなたかご存じでしたら教えてください。

VBAからJAVAのクラスを使用するための手順を
ご存じでしたら教えてください。
(JAVAのアプリを実行する手順ではないっす)
JNIを使ってJAVAを呼び出すのでしょうか?

当方、VBAもJAVAも初心者なもんで、一連の流れを書いてくれると
ありがたいです。

スレチだったらスンマセン



125 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 09:22:55 ]
>>124
スレ違いなのでさようなら
参考までに>>101の後半読んでおいてね

126 名前:ここでナット [2007/06/13(水) 09:49:13 ]
ちょっとアホな質問かもしれないですが、

VBAのフォームのソースだけを変更して、

それ以外の標準モジュールやシートの内容は

そのままにする事をプログラム化する方法は

ありますでしょうか?

※ボタンを押すだけでソースだけ更新みたいな事です。



127 名前:デフォルトの名無しさん [2007/06/13(水) 09:59:13 ]
VBAでグラフを描きたいのですが、第2軸の目盛の最大、最小の指定は
どうすれば良いのでしょうか。
(下記は主軸の場合ですが、どのように変えれば良いのでしょうか)

With .Axes(xlValue)
.MinimumScale = 0
.MaximumScale = 1
End With

よろしくおねがいします。

128 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 10:17:52 ]
>>127
操作をマクロに記録して睨めっこ。

129 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 10:37:42 ]
どこで聞いて良いかわからなかったんだが、
膨大な量の乗車案内を検索かけたいんだが、何か良い方法はないだろうか?
東京→上野
東京→新宿
東京→池袋
東京→・・・
   ・
   ・
   ・

130 名前:117 [2007/06/13(水) 10:40:04 ]
>>119
ありがとうございます。
現在はその回避方法を採用するつもりです。

ただ、その現象が当方の環境によるものかが判断できません。
みなさんの所でも同じ現象が起こりますでしょうか?

また、他の回避方法もありましたらお教えください。

131 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 11:44:24 ]
>>126
具体的には?

132 名前:ここでナット [2007/06/13(水) 11:59:54 ]
>>131

ソースに不具合があったので、ソースだけ更新を行いたいです。

エディター画面を開いてソースを書き換える作業すれば良い事なのですが

その作業を行える人がいないので、簡単にソースだけを書き換える方法を探してます。

例えば、別のExcelマクロを用意してその中に新しいソースを入れて、

ボタンを押して実行すると、変更先のExcelマクロのソースだけが更新するみたいな

事がやれたらいいなと思っています。



133 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 18:15:41 ]
>>130
当該ブックのみ終了。再現しません


134 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 18:26:31 ]

>>132
 . . .
具体的には?

ttp://dictionary.goo.ne.jp/search.php?kind=jn&MT=%B6%F1%C2%CE%C5%AA




135 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 19:08:08 ]
>>132
エクスポートインポート

136 名前:デフォルトの名無しさん [2007/06/14(木) 01:29:13 ]
教えてください。
ボタンを押すと、C→File→にあるdata.csvを開いて処理開始なんですが、
データが無い場合にエラーメッセージを表示するよう仕組んでと言われまして。

ChDir "C:\File\data.Csv"
Workbooks.Open Filename:= _
"C:\File\data.Csv"

とこのあと、if then 文を書けばいいと思うのですが、
If Dir("C:\File\data.Csv") = "" Then
MsgBox "DataBook.xlsは見つかりません"
End If
Exit Sub
こんなん書いたんですが、勿論動きません。
IF文以下お教え願います。


137 名前:デフォルトの名無しさん [2007/06/14(木) 01:31:43 ]
すみません、表記間違ってました。

MsgBox "DataBook.xlsは見つかりません"

  ↓

MsgBox "data.csvは見つかりません"  の間違いです


138 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 01:35:16 ]
あとじゃなくて先にしろ

139 名前:デフォルトの名無しさん [2007/06/14(木) 06:08:04 ]
If Dir("C:\File\data.Csv") = "" Then
 MsgBox "data.csvは見つかりません"
 Exit Sub
End If
 ファイルオープン処理

動かなければどこのコードで動かないのか確認してから考えた方が…。


140 名前:127 [2007/06/14(木) 10:54:26 ]
>128

レスありがとうございます。それしかないですか^^;



141 名前:デフォルトの名無しさん [2007/06/14(木) 11:08:33 ]
EXCEL2007のVBAで、複合グラフ(折れ線)を描いたのですが、
グラフの描画領域が、指定したセル範囲をオーバーして描かれます。
指定したセル範囲に収まるようにするには、どうすれば良いのでしょうか

列(縦)方向はぴったり合うのですが、
行(横)方向に幅がオーバーします(左端も少しセルの左端からズレます)。

<コード>
Dim dataRg As Range, graphRg As Range
Sheets("DATA1").Select
Set dataRg = Sheets("DATA1").Range(Cells(data_row_from, data_col_from), Cells(data_row_to, data_col_to))
Set graphRg = ActiveSheet.Range(Cells(graph_row_from, graph_col_from), Cells(graph_row_to, graph_col_to))
Sheets("CHART").Select

With ActiveSheet.ChartObjects.Add(graphRg.Left, graphRg.Top, graphRg.Width, graphRg.Height).Chart
.SetSourceData Source:=dataRg, PlotBy:=xlColumns
.ChartType = xlLine
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
.HasLegend = False

.SeriesCollection(1).Border.ColorIndex = 41
.SeriesCollection(2).Border.ColorIndex = 53
.SeriesCollection(2).AxisGroup = xlSecondary
End With


142 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 13:39:11 ]
>>140
With ActiveChart.Axes(xlValue, xlSecondary)
.MinimumScale = 0
.MaximumScale = 1
End With

143 名前:117 [2007/06/14(木) 13:52:30 ]
>>133
そちらの環境では再現しませんでしたか。
情報ありがとうございます。

もう一台、2007をインストールしたPCを用意したのですが、
そちらでも100%再現しました。

マクロを直接実行した場合は問題なく当該ブックのみ終了するのですが、
そのマクロをシェイプに登録し、そのシェイプをクリックすると
ブックが閉じたあとにExcelが異常終了してしまいます。

ブックを変更していた場合、保存を確認するダイアログがでますが、
「キャンセル」を選択した場合は問題なく、「はい」「いいえ」を
選択した場合は異常終了となります。

ただ、他のブックを開いている場合は当該ブックのみ終了し、
Excelの異常終了はありません。

前回質問時はUpdateしてませんでしたが、Updateした環境でも
同様でした。

とりあえず、他の掲示板などでも同じ質問をしてみてから
マイクロソフトに問い合わせをしてみようと思います。

ありがとうございました。

144 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 15:20:06 ]
>>132
VBE.CodeModuleのInsertLines(), DeleteLines(), ReplaceLine()あたり。
VBEを使うには、なにか制限なり手順なりがあったような気もする。
実行も、セキュリティレベルを下げる必要があるかも。

まぁ、そのような状況にならないように、アプリはアドインで作った方がいい。



145 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 15:33:12 ]
>>143
他の環境でも再現するんだ
何か共通でインストールしてるものに影響されてるのかな?

146 名前:144 mailto:sage [2007/06/14(木) 15:37:08 ]
ttp://sourceforge.jp/projects/vbaunit/から、vbaunitというのをダウンロードして、
新規Bookを開き、参照設定でVBAHelper.xlaと「Microsoft Visual Basic for Applications
Extensibility 5.3」を参照する。
新規にモジュールを作成し(Module1)、次のコードを貼り付け実行すると、3行目が修正される。
Option Explicit

Sub foo()
Dim cm As CodeModule
Set cm = VBAHelperModule.VBAHelperLookupCodeModule("Module1")
cm.ReplaceLine 3, "Sub bar()"
End Sub


147 名前:117 [2007/06/14(木) 18:15:07 ]
>>145
こちらのテスト環境ですが、どちらも XP Pro SP2 で Office 2007 Enterprise です。
ただ、一方は Virtual PC 上の XP に Excel2007 のみをインストールした状態です。

今のところ考えられる条件は
・シェイプにマクロを割り付けてクリックで実行
・現在のブックのウインドウが閉じられる
・他のブックのウインドウが開いていない

thisworkbook.close 以外にも、これらのコードでもだめでした。
 workbooks(1).close
 window(1).visible = false

148 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 19:01:36 ]
>>147
なるほど、おそらく2007固有の現象ということですな
2007持ってないんで他の持ってる人に試してもらいたいね

149 名前:140 [2007/06/15(金) 09:13:16 ]
>>142
レスありがとうございます

150 名前:デフォルトの名無しさん [2007/06/15(金) 16:13:53 ]
Rangeの最初の位置を(左上)得たいのですが、どうするのが簡単なんでしょ。

ActiveSheet.Range("テーブル[列]").Offset(0, 0)

Offsetでよいのかな?うまくいっているみたいですけど

151 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 16:19:45 ]
ActiveSheet.Range("テーブル[列]")(1)

など



152 名前:150 [2007/06/15(金) 16:26:32 ]
Excel2007です。
>>151
サンクスです。

でじつは、Rangeオブジェクトを for で回そうと、

Dim StartCell As Range, LastCell As Range
Set StartCell = ActiveSheet.Range("テーブル[列]").Offset(0, 0)
Set LastCell = ActiveSheet.Range("テーブル[列]").End(xlDown)

' 資産に関連するもの更新
For i = StartCell.Row To LastCell.Row
   CalculateTable (ActiveSheet.Cells(i, 4))
Next i

としていたのですが、もっと簡単な書き方はないでしょうか?

Dim Cell As Range
For Each Cell In ActiveSheet.Range("テーブル[列]")
   CalculateTable (Cell)
Next
とすると、 CalculateTable (Cell) で、オブジェクトが必要です、と怒られてしまいます。 orz


153 名前:150 [2007/06/15(金) 16:30:12 ]
>>152
うああああ、
   CalculateTable (Cell)
じゃなくて、
   CalculateTable Cell
にしたら、エラーでなくなった orz
マジVBAわかんねえええええ。

なんだこら

154 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 16:37:34 ]
関数単体で引数()でくくるとなりますね



155 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 21:01:14 ]
たぶん配列とまぎらわしいからだろ

156 名前:初心者 [2007/06/17(日) 13:50:18 ]
はじめまして、VBAをやり始めたばっかりで全然わからないので教えて下さい。

(1)1+2+3+…+10を計算する
(2)1+3+5+…+19を計算する
(3)1+4+9+…+100を計算する
と言う問題で以下の空欄にあてはめるものを答える問題です。

Sub ex()
Dim x As Integer, sum As Integer
sum = 0
For x = 1 To 10
(空欄)
  Next x
Msgbox "合計=" & sum
End Sub

長々とすみません。よろしくお願いします。

157 名前:デフォルトの名無しさん [2007/06/17(日) 13:58:01 ]
>>156
宿題だとばれると教えてもらえないから、もう少し、利き方変えた方がいいぞ

あと「よろしくお願いします」って、お前他力本願スギ。
どこが、わからなくて、どこで詰まっているかを質問しよう。

158 名前:デフォルトの名無しさん [2007/06/17(日) 14:01:01 ]
(1) sum = sum + x
(2) sum = sum + (2*x -1)
(3) は自分で考えろ馬鹿

159 名前:初心者 [2007/06/17(日) 15:52:53 ]
すいません。(3)がわかりません

160 名前:デフォルトの名無しさん [2007/06/17(日) 16:36:26 ]
sum = sum + (5*x -1)

161 名前:初心者 [2007/06/17(日) 17:02:14 ]
なぜそうなるのでしょうか?

162 名前:デフォルトの名無しさん [2007/06/17(日) 17:12:23 ]
>>160
ワロタ

163 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 17:48:13 ]
>>161
悪いことは言わん。
算数からやり直せ。

164 名前:デフォルトの名無しさん [2007/06/17(日) 18:14:15 ]
なんでまたVBAのスレに質問してくるの?
VBAどころか、ただのアルゴリズム…いや、算数か。の問題だろ。

法則を考えろよ…。



165 名前:デフォルトの名無しさん [2007/06/17(日) 18:27:48 ]
言っておくけど160のは違うぞ。

ヒント。
sum=1+4+9+16+25+36+49+64+81+100
これで分からなければ終わってる。

166 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 18:41:58 ]
気がつかなかった俺オワタw

167 名前:デフォルトの名無しさん [2007/06/17(日) 18:46:23 ]
わからない。答え教えてもらえないですか?

168 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 18:56:47 ]
(3)は
sum=sum+(x*x)


169 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 18:57:32 ]
>>156
(2)
For i = 1 To 19 Step 2: sum = sum + i: Next: Exit For

(3)
Select Case x
Case 1: sum = sum + 1
Case 2: sum = sum + 4
Case 3: sum = sum + 9
Case 4: sum = sum + 16
Case 5: sum = sum + 25
Case 6: sum = sum + 36
Case 7: sum = sum + 49
Case 8: sum = sum + 64
Case 9: sum = sum + 81
Case 10: sum = sum + 100
End Select

これでいーだろ







まじめに(3)のヒントだすなら「^2」


170 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 19:06:07 ]
コーディングより1+4+9+…+100が全くわからなかった。
オワテルwww

171 名前:デフォルトの名無しさん [2007/06/17(日) 19:30:52 ]
をいをい…。

つうか>>156、その問題は学校の問題か?職場の問題か?

172 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 20:30:10 ]
>>169
ヒント:「For x = 1 To 10」部分は固定

173 名前:169 mailto:sage [2007/06/17(日) 21:01:49 ]
>>172
ん?
(2)のことならxでループさせてないんだけど?
試してないからわからんけど、ネストされたForで答えでない?

意味取り違えてたら堪忍

174 名前:初心者 [2007/06/17(日) 21:49:26 ]
2乗はどうあらわしたらいいのですか?



175 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 21:55:05 ]
>>174
>>169

176 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 23:10:44 ]
>>173
Sub ex()
Dim x As Integer, sum As Integer
sum = 0
For x = 1 To 10
(空欄)
  Next x
Msgbox "合計=" & sum
End Sub

の中で変えて良いのは(空欄)の部分だけ
単に(1)(2)(3)の計算ルーチンを作れば良いだけではなく
1 To 10のxのループを使った上で解かなければならないという条件

177 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 00:10:28 ]
偉そうに答えてる人の方がネタに見える…
(1) sum = x + sum
(2) sum = x * 2 - 1 + sum
(3) sum = x ^ 2 + sum


178 名前:デフォルトの名無しさん [2007/06/18(月) 00:55:34 ]
>>177

ありがとうございました!独学なんで分からないところがたくさんですm(__)m

179 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 01:03:28 ]
>>178
Excelより先に算数の勉強をし直した方が良いぞ。

180 名前:169 mailto:sage [2007/06/18(月) 01:14:50 ]
>>176
あ〜ごめん
xを必ずループさせろとは書いてなかったから

ちなみに
俺が書いた(2)が空欄に入れるものだってわかってるよね?
sum = 0
For x = 1 To 10
For i = 1 To 19 Step 2: sum = sum + i: Next: Exit For
Next x
Msgbox "合計=" & sum
End Sub
ってことね

答えが先にかかれてたからふざけてみたんだけど
ふざけすぎたかw
普通なら当然>>177だわなw


181 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 04:00:12 ]
ネタなのはわかるがiはどこから出てきたんだw

182 名前:デフォルトの名無しさん [2007/06/18(月) 16:22:16 ]
EXCEL2003です。
半角アルファベット文字列の先頭だけ大文字にしたいのですが、
適切なものが見つかりません。

ググってProperを見つけましたが、これは先頭を大文字にするだけでなく
先頭以外の大文字を小文字にしてしまいますよね。

helloWorld → HelloWorldとしたいのですが、適切な方法を
教えていただけますか?

183 名前:デフォルトの名無しさん [2007/06/18(月) 16:54:13 ]
最初の一文字を取り出して大文字にすれば?

184 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 17:31:56 ]
s = "helloWorld"
Mid$(s, 1, 1) = UCase$(Mid$(s, 1, 1))




185 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 21:59:57 ]
Midステートメント使う人久しぶりに見た気がする
Midステートメント自体は自分で使いまくってるからよく見てるが
公開されたソース見ても、こういうところの回答見ても
使ってる人殆ど居ないからなぁ

ところで、Leftステートメントは無いから代入左辺はMidでいいが
右辺の関数はMidではなくLeftの方がいいのでは?
つ Mid$(s, 1, 1) = UCase$(Left$(s, 1))

まあ実はMidもLeftも無くてもOKなんだけどね
Midステートメント側で置換文字数指定していれば、何文字代入しようと指定文字数以外は置換されない
つ Mid$(s, 1, 1) = UCase$(s)

逆に代入する文字数を指定しておけば、置換する文字数は指定しなくても問題なかったりする
つ Mid$(s, 1) = UCase$(Left$(s, 1))

186 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 22:32:41 ]
>>185
横レスだが、勉強になった

187 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 22:41:49 ]
つかMidって参照だけかと思ってたw

188 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 23:11:52 ]
MSbasicからの伝統で、mid$は関数版とステートメント版がある。

189 名前:デフォルトの名無しさん [2007/06/19(火) 12:08:51 ]
エクセルソフトを持ってないので、フリーソフトのOPENOFFICEを使用
ダウンロードしてVBAは作成できるんでしょうか?

190 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 13:18:08 ]
>>189
アレ使えばね
具体的な話はスレ違いなので伏せるけど

191 名前:デフォルトの名無しさん [2007/06/19(火) 14:45:55 ]
日本語で書け

192 名前:デフォルトの名無しさん [2007/06/19(火) 14:54:14 ]
全くだ
質問内容は察せるが、日本語じゃないよな

193 名前:デフォルトの名無しさん [2007/06/19(火) 21:26:28 ]
みなさん、こんばんは。

とある事情により、エクセルのワークシート内に三角波のデータを埋め込みたくなりました。
サインカーブのデータだったら、sin関数でデータを作ったことはありますが、
三角波の場合、どうしたらいいですか?

私がエクセル上でやろうとすると、くどい if文のネストになりそうです。

どなたか、あっさりしたもの、できませんでしょうか?








194 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 21:46:07 ]
汎用アルゴリズムの話はスレ違い
VBAどころかVBも関係ないし



195 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 21:58:39 ]
ワークシート埋め尽くす方法ぐらい教えてあげたらw

196 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 22:13:28 ]
フーリエ展開してしまえw






[ 続きを読む ] / [ 携帯版 ]

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

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