VBAについて Ver.3.0
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/tech/1055153917/l50
0002鳥取砂丘 ◆Dream/3P/.
NGNG ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄
。 。
|| || /⌒ ヽ.
/ ⌒ヽ( /⌒ヾ )
((゚Д゚,,))ゝヽのノノ
⊂⊂ _____つ )) ))
0003ミナツキ サヤ ◆SAYAC2HJWE
NGNG0004デフォルトの名無しさん
NGNG>>3
さっきゅんって神出鬼没なんだね。
0005デフォルトの名無しさん
NGNG30未満「近い」 30以上60未満なら「普通」
60以上90未満なら「遠い」 90以上なら「超遠い」 と B2に表示
A1に通学時間 B1に判定 を表示 IF文を用いる
と、いう問題を学校で出され、模範解答ももらったのですが
Sub 通学時間()
jikan = Cells(1, 2)
If jikan < 30 Then
hantei = "近い"
Else
If jikan < 60 Then
hantei = "普通"
Eles
If jikan < 90 Then
hantei = "遠い"
Eles
hantei = "超遠い"
End If
End If
End If
Cells(2, 2) = hantei
End Sub
で作るとどんな数値を入れても判定が「近い」しかでないのです…
どなたか、きちんと動くようにアドバイスいただけませんか?
お願いしますっ
0006デフォルトの名無しさん
NGNG×:jikan = Cells(1, 2)
○:jikan = Cells(2, 1)
×:Eles(2か所)
○:Else
0007デフォルトの名無しさん
NGNG最近では、学校でVBAするの?
学校って、どんな学校?
単位もらえるの?
0008デフォルトの名無しさん
NGNGありがとうございます。
おかげで動くようになりました。
>>7
はい、学校でやります。普通の学校で、単位ももらえます。
迷惑ついでにもう1つ詰まった問題をアドバイスいただけないでしょうか…?
10個の整数をA1〜A10から読み取り、それらのうちの任意の
i番目とj番目(iはA12、jはA13から読み取る)の値を交換し、変更後の10個の整数をB1〜B10
に表示する。ただし、配列を使うこと。
Sub 交換()
Dim a(10)
For k = 1 To 10
a(k) = Cells(k, 1)
Next k
i = Cells(12, 1)
j = Cells(13, 1)
x = a(i)
a(i) = a(j)
a(j) = x
For k = 1 To 10
Cells(k, 2) = a(k)
Next k
End Sub
0009デフォルトの名無しさん
NGNGちゃんと動いたよ。
Rangeプロパティは知らない?
i = Cells(12, 1)
より
i =range("A12")
の方が問題文に近くてわかりやすいと思う。
0010やん
NGNGSub 交換()
Dim a(10)
For k = 1 To 10
a(k) = Cells(k, 1)
Next k
i = Cells(12, 1)
j = Cells(13, 1)
x = a(i)
a(i) = a(j)
a(j) = x
For k = 1 To 10
Cells(k, 2) = a(k)
Next k
End Sub
これでいかがですか?
つーか通学時間のやつ、無駄にIfネストで使わずにElse If使ったほうがいいよ。
End If
End If
End If
なんてやめれ。
0011やん
NGNG失敬。
0012デフォルトの名無しさん
NGNG>A12とA13を入れ替えてどうするんだよ!
(´д)ヒソ(´д`)ヒソ(д`)
0013デフォルトの名無しさん
NGNG普通の学校って、大学?専門学校?高校?
0014デフォルトの名無しさん
NGNGA1:"=A2+A3"
A2:"3"
A3:"2"
とします。
「up」と「down」のボタンを作り、
「up」ボタンを押すとA1の値を10倍
「down」ボタンを押すとA1の値を1/10
となるようなマクロを教えていただけないでしょうか?
0015デフォルトの名無しさん
NGNG収束条件が不足しているためマクロとするのは不可能です。
条件をはっきりさせてゴールシークを利用しましょう。
0016デフォルトの名無しさん
NGNG何がしたいのか分からんが、
CommandButton1が up
CommandButton2が down とする。
Private Sub CommandButton1_Click()
Range("A1") = Range("A1") * 10
End Sub
Private Sub CommandButton2_Click()
Range("A1") = Range("A1") / 10
End Sub
0017デフォルトの名無しさん
NGNGこんなときのSpinButtonやろ。
CommandButton使うより。
それだと、A2、A3を変えても、反映しませんね。
>>14が何をしたいのかわからないけど、設計自体変えたほうが良さげ。
001816
NGNGPublic Val As Double
Private Sub SpinButton1_SpinUp()
Val = Val * 10
Range("A1") = Val
End Sub
Private Sub SpinButton1_SpinDown()
Val = Val / 10
Range("A1") = Val
End Sub
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$A$2" Or Target.Address = "$A$3" Then
Val = Range("A2") + Range("A3")
Range("A1") = Val
End If
End Sub
001917
NGNGただ、Val←関数名と同じ変数名は避けたほうがいいかもね。
0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNGあまりに大きくなりすぎたので、EXCELブックを最適化したいと思っています。
フォームやモジュールを全てエクスポートし、
解放したあとインポートし直す事によって
ある程度サイズ縮小が出来るというところまで分かったのですが、
毎回するのは大変なので、
それを自動で行ってくれるマクロとかプログラムを探しています。
誰か作った方はいませんか?
もしいましたら、そのPGを分けていただけませんか?
もし他にも最適化する方法をご存じの方はご教授ください。
0023デフォルトの名無しさん
NGNG0024uya
NGNG0025デフォルトの名無しさん
NGNG強制的にあるセルにフォーカスをセットさせたいのですが
どうすればよいでしょう?
0027デフォルトの名無しさん
NGNG特定のセルの内容が、数式なのか、それとも直接値なのか、
見分ける方法はないでしょうか?
たくさんのシートを持つブックの中に、所々に合計シートが入っていて、
他の複数のシートの合計値を保持しています。
その合計シートを見分けたいのです。
合計シートと単体のシートのレイアウトは全く同じですが、
特定のセルのデータが、合計シートは数式、単体のシートは直接値なのです。
どうかよろしくお願いいたします。
0028デフォルトの名無しさん
NGNGLeft(Range("A1").Formula, 1) = "="
0029デフォルトの名無しさん
NGNGdebug.print でイミディエイトウインドウ内で上下左右にカーソルを移動させたい。
0031デフォルトの名無しさん
NGNGActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=255, Top:=57, Width:=161.25, Height:= _
44.25).Select
ステップ実行していくと↑の処理以降で「中断モードでは入力できません。」ってメッセージがでてデバックも何もできない;;
だれか解決方法知ってませんか?
0032デフォルトの名無しさん
NGNGactivateとselectとの使い分けってみなさんどうしてますか?
0033デフォルトの名無しさん
NGNGセルD4に「不明」という文字が挿入された場合の処理が解らないんですが・・
↓これをどこに入れればいいの?
If IsDate(Range("D3").Value) Then
If IsDate(Range("D4").Value) Then
If IsDate("不明") Then
If IsDate("不明") = False Then
MsgBox "日付データではありません"
ttp://ptba2.hp.infoseek.co.jp/cgi-bin/up/bbs.cgi
[No,2395] だめぽ
教えて君 [2004/3/11(木) 午前4:31:37]
どうやったらいいの?
0034デフォルトの名無しさん
NGNG(1) [ALT] + +[F11] で VBエディタを起動。
(2) プロジェクトの Sheet1 をダブルクリック
(3) 下記コードをコピペ。
(4) D列の値を変更すると、日付かどうかチェック。
日付値と"不明" と "" 以外は警告して入力値を消去する。
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column <> 4 Then
Exit Sub
End If
If IsDate(Target.Value) = False Then
If Target.Value <> "不明" And Target.Value <> "" Then
MsgBox ("日付データではありません")
Target.Value = ""
End If
End If
End Sub
003533
NGNG出来ました。ありがとう御座います
0036デフォルトの名無しさん
NGNG前スレ914-
0037デフォルトの名無しさん
NGNG配列の中身でソートする関数はありませんか?
0038デフォルトの名無しさん
NGNGDmaxを使った自動採番にしようと思っているのですが、
分からないので質問させてもらいました。
挿入前処理で
H16-0001といった風に番号をつけたいのですが、
ハイフンを入れることもできるのでしょうか?
できるとするなら、コードを教えてください。
それと以前、自動採番に挑戦したとき、
テーブルのデータが何もなしの状態で
Dmax+1を使用したら、番号がつきませんでした。
テーブルデータがない場合の対策も教えて頂きたいです。
よろしくお願いします。
0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNG----
Private Sub DBTrigger_236_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
ActiveSheet.Cells(4, 54).Value = "1"
'
End Sub
Private Sub DBTrigger_236_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
ActiveSheet.Cells(4, 54).Value = "0"
End Sub
----
このような記述をボタンの分だけ作成しました。
ボタンは1シートに10個ほど作成してあります。
このとき、いづれかのボタンを押す度に全てのコマンドボタンの表示がちらつく
のですが、何か対策はありますか?
0041デフォルトの名無しさん
NGNG同じ質問で申し訳ないのですが、よろしくお願いします。
perlで使用するWIN32::OLEについて教えて下さい。
PowerPointでグラフを作っているのですが、
グラフの軸の部分の目盛間隔の設定がうまくいきません。
$Chart->Axes(xlValue->{MajorUnitIsAuto} = FALSE;
$Chart->Axes(xlValue->{MajorUnitScale} = 0;
$Chart->Axes(xlValue->{MajorUnit} = 10;
と指定すると、
目盛間隔の自動は外れ、単位は「日」になるのですが、
肝心の数値部分が10になりません。
10日単位の目盛にするにはどうすればいいのでしょうか?
宜しくお願いします。
0042デフォルトの名無しさん
NGNGPerl経由じゃなく、VBAだけで試してみてもダメ?
0043デフォルトの名無しさん
NGNGマクロ処理中は画面の更新停止するようにしてみたら?
004441
NGNGすみません、VBA自体使うのが初めてで、VBとかもほとんどやった事がなくて
ソフトも入っていないんですが、
VBがインストールされていなくてもVBAだけっていうのは出来るんですか?
0045デフォルトの名無しさん
NGNG004633
NGNGそっちの域には達してないようです。
これで解決できました。
ごめんなさい。
Sub s_1()
If IsDate(Range("D4").Value) Then
End If
If IsDate(Range("D4").Value) Then
End If
If IsDate("不明") Then
End If
If IsDate("不明") = False Then
MsgBox "日付データではありません"
End If
End Sub
0047デフォルトの名無しさん
NGNGあるそうですが、どういう風にしてパスワードを解除してるのか
知ってる人がいたら教えて。
また、本当に解除できるのかも教えて。
0048デフォルトの名無しさん
NGNGRange("A1,B2,C3").Select
とすると3つのセルが選択できますけど
これをR1C1方式で記述するにはどうすればよろしいでしょうか?
0049デフォルトの名無しさん
NGNG教えてください。
・セルの移動を行う
・セル移動のイベントを拾う
・移動前のセルのアドレス(A1とか)を拾う
・移動前のセルの情報を取得して、該当セルであれば、操作を行う。
です。
セルが移動したときのイベントの拾い方が分からないのです。
知っている方いらっしゃいましたら、ご教授お願い致します。
0050デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNGWorksheet_SelectionChange(ByVal Target As Excel.Range)
0052デフォルトの名無しさん
NGNGこういうこと?
Application.Union(Cells(1, 1), Cells(2, 2), Cells(3, 3)).Select
Rangeの引数はA1形式限定なので、Cells(行,列)をUnionでくっつけてます。
005349
NGNGPrivate Sub Worksheet_Change(ByVal Target As Excel.Range)
で、セルが修正されたイベントを拾うことが出来ました。
0054デフォルトの名無しさん
NGNGページ違反で強制終了されます。
解決法はないでしょうか?
0055デフォルトの名無しさん
NGNG早速実行して、実感してみようと思ったんですが
Dim aaa As OraSession ← の所で止まって
コンパイルエラーと出て内容が
プロジェクトまたはライブラリが見つかりません
と表示されました。
これは参照設定が足りないんでしょうか?
もし追加をするとしたら何を追加したらいいんでしょうか?
宜しくお願いします。
0056デフォルトの名無しさん
NGNG処理をするというループを考えているのですが、分からないので
力を貸してください。
その列の中には空白のセルもいくつかあるので
Do While Activecell.Value <> "" 〜 Loop
というのはできません。よろしくお願いします。
Range("A1").Select
Do While ???
'ここに何らかの処理
Activecell.Offset(1,0).Select
Loop
0057デフォルトの名無しさん
NGNG参照設定で参照不可になってるヤツがないですか?
>>56
Range("A65536").End(xlUp)でとれるRangeオブジェクトがA列の一番下のセル
0058デフォルトの名無しさん
NGNGOracleのクライアント入ってなきゃ動くわけねえべ。
その友人はどういうつもりでそのファイルを渡したのか。
0059デフォルトの名無しさん
NGNGありがとうございます。
助かりました。
0060デフォルトの名無しさん
NGNG続きを実行する方法を教えてください。
0061デフォルトの名無しさん
NGNG改行が多いというメッセージが出たんで下の所にうpした。
参考になるかどうかはしらんけど。
http://www.42ch.net/
1079617015.lzh
006361
NGNG※参考 Test.batを実行後DOS窓を閉じる
dim tmp
tmp=Shell("Command.Com /C C:\test.bat",6)
0064会社員
NGNG申込書から転記するだけの項目が17箇所もあり、いずれの項目も長文の英文なので、
できれば申込書にマクロを組みこんで、契約書を自動作成したいと思っています。
が、
�@エクセルのマクロからワードを立ち上げられない
�Aコピペ先(=契約書の該当部分)がうまく指定できない
という問題にブチあたっています。
申込書はwordファイルに変えてもいいのですが、
そうすると、申込書のコピペ元もうまく指定できないような気がします。
また、場所をうまく指定するにはフォームを使えばいいような気がするのですが、
フォームの入っている文書はうまくマクロが機能してくれません。
いかにも素人の質問で恐縮ですが、いい解決策はあるでしょうか?
よろしくご教示ください。
0065デフォルトの名無しさん
NGNGExcelからWordへ転記する箇所は、1対1でしょうか?
そうであれば、ワードの「差し込み印刷」を使えば良いでしょう。
>また、場所をうまく指定するにはフォームを使えばいいような気がするのですが、
>フォームの入っている文書はうまくマクロが機能してくれません。
↑この部分だけ、意味がまったくわかりませんでした。
主に”フォーム”が何を指しているのかわかりません。
(実際に)何をどうしたら、どのようなマクロがどう動かないのでしょう?
0066会社員
NGNG>ExcelからWordへ転記する箇所は、1対1でしょうか?
>そうであれば、ワードの「差し込み印刷」を使えば良いでしょう。
同じ内容を2度繰り返す項目、3度繰り返す項目があります。
また、できた契約書はwordファイルで海外に送付し、
内容について顧客と交渉を行うため、
契約書が1つずつファイルで作成される必要があります。
>↑この部分だけ、意味がまったくわかりませんでした。
>主に”フォーム”が何を指しているのかわかりません。
>(実際に)何をどうしたら、どのようなマクロがどう動かないのでしょう?
すみません。×フォーム ○フィールド です。
私が試したのは、申込書をwordファイルで作り、
契約書、申込書それぞれのコピペする部分にだけ入力可能なように
フィールドを作り、保護をかけた上でマクロを記録しました。
全然動きませんでした。
難しいことをやろうとしているのでしょうか?
0067デフォルトの名無しさん
NGNGD3:test.bat など
D3はコンボボックスになっていて
いろいろ選択出来るように指定してあります。
以下のような感じで出来そうだと思っていますが
変数がうまく代入できません。
Set apr = Range("D3")
Shell("c:\tools\bat\"ここからtest.batを動かしたいのでaprを代入したい)
どうやったらうまく動くのでしょうか?
0068デフォルトの名無しさん
NGNG1契約書をテキストファイルで保存
2Excelからそのテキストファイルを開く
3挿入したい位置まで読み込む
4挿入する
以下、3と4を繰り返し、テキストファイルで再保存する。
ワードを立ち上げ再保存したテキストファイルを読み込む
あとは、マクロの自動記録で書式を設定する
こんな流れで以下に作ってみました。
0069デフォルトの名無しさん
NGNGDim strTxt2()
'契約書をtest.txtでテキスト保存します
Open "c:\test.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, strTxt
ReDim Preserve strTxt2(i)
'1行ずつ配列に入れます
strTxt2(i) = strTxt
i = i + 1
Loop
Close #1
i = 0
0070デフォルトの名無しさん
NGNG'申込書が含まれるファイルを作成します
Open "c:\test2.txt" For Output As #1
'配列の数だけ繰り返します
For i = LBound(strTxt2) To UBound(strTxt2)
Select Case i + 1
'申込書データを挿入したい位置です
Case 1
Print #1, strTxt2(i) & Sheets(1).Cells(1, 1).Value
Case 3
Print #1, strTxt2(i) & Sheets(1).Cells(3, 1).Value
Case 5
Print #1, strTxt2(i) & Sheets(1).Cells(5, 1).Value
Case Else
Print #1, strTxt2(i)
End Select
Next
Close #1
End Sub
0071デフォルトの名無しさん
NGNG契約書.Docに[%01]という形式の置き換え先指定文字列が入っているとして
Sub ReplaceExcel2Word()
Dim wda As Word.Application
Dim wdd As Word.document
Dim idx As Long
'ワード起動
Set wda = GetObject(, "Word.Application")
wda.Visible = True
’ファイル起動
Set wdd = wda.Documents.Open("契約書.Doc")
wdd.Activate
'検索して置き換え
With wda.Selection.Find
For idx = 1 To 10
.Text = "[%" & Format(idx, "00]")
.Replacement.Text = Cells(idx, 1).Value
.Forward = True
.Execute Replace:=wdReplaceAll
Next idx
End With
End Sub
0072デフォルトの名無しさん
NGNGShell("c:tools\bat\" & apr.Value)
0073デフォルトの名無しさん
NGNGひとつならいけるのに下のようにandでやると型が一致しませんと言われます。
Me.Filter = "[FEE] >=" & frmF And "[FEE] <=" & tF
0074デフォルトの名無しさん
NGNGどのクラスのプロパティを指しているのかを書け。
その例では文字列同士が同じだったらTRUEを代入することになる
Me.Filter="[FEE]>=" & frmF & " AND " & "[FEE]<=" & tf
0075会社員
NGNGありがとうございます。
会社で試してみます。
0077デフォルトの名無しさん
NGNGシートをセーブした名前に変わります。
変わらないようにしたいのですが、何か方法はないですか?
今はBoockの名前をBookのSaveasでもとに戻していますが、2重にセーブになります。
007877
NGNG0079デフォルトの名無しさん
NGNGSaveCopyAs
0080デフォルトの名無しさん
NGNGありがとう。気がつきませんでした。
0081デフォルトの名無しさん
NGNG俺はUSERFORM2の設定情報をINIファイルとやり取りする
インターフェイスというか、データの仲介者というか
そんな感じでしか使ってない。
008277
NGNGだめです。SheetにはSaveCopyAsもCopySaveAsもありません。
あー、めちゃ喜んだのに。残念。
0083デフォルトの名無しさん
NGNG008477
NGNGあ、そうですね。それはいいアイデアですね。やってみます。
VBAは初めてなんですが、難しいですねー。
FrameにCommandボタン3つ並んだだけの簡単なOCXを作ってEXCELの
シートに貼り付けたのですが、2回クリックしないと、EVENTが発生しないんです。
VBでテストすると問題ないのですが、Sheetに貼り付けたときは、
一回目のクリックではフォーカスが移るだけで、EVENTが出ないんですよ。
008577
NGNGちなみに
sub CommandButton1_Click()
Workbooks.add 1
dim w as workbook
set W = Workbook(Workbooks.Count)
Me.copy W.worksheets(1)
W.Worksheets(1).SaveAs "aaa.txt", FileFormat:= xlTextPrinter
W.close savechanges := True
Set W= nothing
end sub
ふう。
0086デフォルトの名無しさん
NGNG冷てーーー(T_T)
008777
NGNG冷たいと言うより答えようが、、、、
77も未熟ものだから、答えても参考にならんかも。
VBAは使ってみて、色色難しいなと思う。
クラスモジュールやOCXはバグに悩まされると思う。今回
簡単に使っただけで、相当悩んだ。VBでは全然問題ないのに
Sheet上で使うと問題がでる。動作はするけど、デバッグで
ブレークすると、メモリーから飛んでしまう現象もあった。
そこで、自分なりに結論をだした。
VBAはグローバル「が」スタンダード。
つまりグローバルガスタンダードプログラミングがもっともいい。
この方法は関数などはすべてmoduleごとに分類して、modXXX.bas
modYYY.basというように、モジュールを山のように並べてプログラミング
する方法。
これは構造が簡単なので、言語側のバグの影響がもっとも少ない。
逆にユーザー側のバグは最も多くなるが、そこは注意力と粘りで解決する。
VBAグローバルガスタンダードプログラミングをためしてみてください。
VBAに限らず、バグの多い言語では非常に威力を発揮するはずです。
あまり高度なことを望むと腹が立つだけ損です。
何事もあきらめが肝心。あきらめたとたんにEXCELがとても便利な
すばらしいプログラミング環境であることがわかりました。
0088デフォルトの名無しさん
NGNG〜〜〜〜
ActiveCell.FormulaR1C1 = "=b4"
〜〜〜〜
と入れると、セルの中身が='b4'となってしまいます。
これを避ける方法はあるのでしょうか。
0089デフォルトの名無しさん
NGNGつうか、カプセル化すると必然的にクラスモジュールを使うようになる
グローバル変数をそこらじゅうに書き散らしてあるプログラムなんぞ読みたくない
とはいえVBAは列挙型を公開できないのでつらいものがあるのは事実
0090デフォルトの名無しさん
NGNGActiveCell.Formula = "=B4"
009188
NGNGありがとうございます。
0092デフォルトの名無しさん
NGNG作って居たところ、input name=".save" となっていて、
"objIE.document.all..save.Click"と、
記述すると文法違反になってしまいます。
良い知恵はございませんでしょうか?
0093デフォルトの名無しさん
NGNG無視されたままでは気の毒なのであまり参考にはならないかもしれないけど
私が行ったことをお知らせします。
某金融系の仕事をしているのですが、ユーザーはEXCELで数値計算や
シミュレーションを行っています。
私が作ったのは、線形計算に用いられる行列などのクラス、
それから確率過程モデリングしたクラスなどです。
行列クラスなどは、継承が使えないで様々な行列クラスに対応した
演算関数と簡易版のどのクラスにも使えるお手軽演算関数の2本立てです。
誰もがメンテナンスを嫌がるのでちょっと後悔してます。
確率過程クラスは、そのカテゴリーのオブジェクト同士の演算はないので
そのような苦労はないのですが、乱数の生成を数種類のものを用意しなければ
ならないのですが、これは実行時に一度だけですむ事から、実行時の型参照
を行っていましたが、結局はj、各確率モデルごとに異なる乱数ルーチンバージョンの
クラスを作ってしまいました。
いずれも本格的な運用が始まるとDLL化して配布しています。
0094デフォルトの名無しさん
NGNG94 名前:デフォルトの名無しさん 投稿日:2004/03/25(木) 15:12
>>89
>VBAは列挙型を公開できないので・・・
そうなの?
自分が違ってるかも知らないが、適用範囲のことですよね?
それとも外部にってこと?
95 名前:デフォルトの名無しさん 投稿日:2004/03/25(木) 22:00
質問です
複合化のソフトを使ってPAR→VBAという具合で変換したのに無効になってしまいます
なぜなんでしょうか?
詳しく教えてください
0095デフォルトの名無しさん
NGNG0を入力するとスペースになって困っています。
そこでセルの書式をユーザー設定にして#0.00としてみましたがこれでも
やはりスペースになります。
このシートはシートAですが、おなじような別のシートBでやると
正常に0.00と表示します。
セルの書式に何かが設定されているようなのです。ちなみに、色々な
セルで試して見ましたが、そのシート全体がどうもおなじ反応をします。
シート全体で設定する何かがあるのでしょうか?どなたか教えてください。
0096デフォルトの名無しさん
NGNG*.EXEとかができるのでしょうか?
EXCELを立ち上げたときに初めてコンパイルエラーというのがでて、VBAで
コンパイルしてみたら、バグがいっぱいあって、新発見でした。
0097デフォルトの名無しさん
NGNGなぜここに質問してくるかがわからんが。。。
オプションでゼロ値を表示しない設定になっとるから
とりあえずそのシートアクティブにしてコレでも実行しとけ
ActiveWindow.DisplayZeros = True
>>96
できるワケがない
コンパイルとはマシン語に翻訳することで EXE を作ることじゃない
VBA はインタプリタ言語で実行時にソースが順次コンパイルされて動作する
009896
NGNGじゃーVBAにあるコンパイルってのは、なんなの?
したったらずのMSの名称バグってことね。では正確には
「マクロの文法チェック」でしょうか?
009995
NGNG> なぜここに質問してくるかがわからんが。。。
あなたしか解決できない難問かもしれないし、、、、。
> オプションでゼロ値を表示しない設定になっとるから
EXCEL2000ですが、TOOL>オプションには「ゼロ値表示しない」なんてのは
ないような、、、、。
EXCELのバグだとおもうのだが。
> とりあえずそのシートアクティブにしてコレでも実行しとけ
> ActiveWindow.DisplayZeros = True
すごーい!!! いけました。
ありがとう。
010095
NGNGこれは日本語のエラーで、正確には
「セル値がゼロのときゼロを表示する。」です。
しかもウインドウオプションっていう名称もおかしいですね。
0101デフォルトの名無しさん
NGNGそゆことでいいんじゃない
0102デフォルトの名無しさん
NGNGインタプリタはソースコードを実行しながら機械語に変換するわけで、
ソースコードを中間コードに変換する作業はインタプリタとはちょっと違う。
中間コードを機械語に翻訳する作業の方がまだインタプリタと言える。
0103デフォルトの名無しさん
NGNGできるツールがあるらしいぞ
http://homepage2.nifty.com/kmado/ksoft.htm ←ここのKstartとかいう奴
シェアウェアらしいし、俺もちゃんと読んでないから実際にはどうか知らんけど
0104103
NGNGタダの見せ掛けだけみたい
起動ランチャみたいな感じの
0105デフォルトの名無しさん
NGNG0106デフォルトの名無しさん
NGNGつけたいんですけど、簡単に作る方法ってあるんでしょうか?
まさかプログラムで1件1件コンボボックスに追加して作るってわけじゃないですよね?
0107デフォルトの名無しさん
NGNG0109デフォルトの名無しさん
NGNGとかって良くあることなの?
0110デフォルトの名無しさん
NGNG別ブックで実行するマクロ処理を
Sub RunTest(ID as string)
処理開始
・
・
・
処理終了
Thisworkbook.close
End sub
みたいな感じにしたら呼び出し元ブックで定義してる変数の中身が何故か
初期化されてしまったんだけどこれは何故かわかる人いますか?
ちなみにThisworkbook.closeをせずにRunTest処理を終わらせてから
ブックを閉じた場合は初期化されなかったんだけど。
0111デフォルトの名無しさん
NGNG0112デフォルトの名無しさん
NGNGA1 セルにパス(例えば C:\Windows)が書かれているとする。
B列にそのフォルダ内のファイル名を書き出す。
ただしサブフォルダと親および自分自身のフォルダは無視する。
下記のマクロを登録して実行する。
Public Sub FileList()
Dim fn As String
Dim i As Long
ChDir Range("A1")
i = 1
fn = Dir("*.*", vbArchive)
While fn <> ""
If Left(fn, 1) <> "." Then
Range("B" & i) = fn
i = i + 1
End If
fn = Dir()
Wend
End Sub
0113デフォルトの名無しさん
NGNG早速の返事ありがとうございます!
ドライブがc:\とf:\の2つあるのですが、c:\やその配下を見ようとすると必ずf:\のルートを
見に行ってしまいます。
f:\についてはサブフォルダの参照も問題ないのですが・・・
c:\を見に行くにはどうすればいいのでしょうか?
0115デフォルトの名無しさん
NGNGサンクス!
0116デフォルトの名無しさん
NGNG以下の構文ですと、1行目で引っかかってしまいます。
excelのsheet1にオブジェクト名"checkbox1"でチェックボックスオンの状態にしてあります。
If Worksheets("Sheet1").CheckBoxes(1).chekcked = True Then
Worksheets("Sheet1").Cells(1, 1).Value = 22
0117悩める者
NGNGドラッグアンドドロップするにはどうしたらよいでしょうか?
無理なのかな?
0118デフォルトの名無しさん
NGNGかつ、次のデータがその下に表示されるにはどうすればいいでしょうか?
sheet間のコピーはできるのですが、データが上書きされてしまします。
どこを直せばいいのでしょうか?
下記のVBです。全部は長いので1部分ですが・・・。
Sheets("入力表").Select
Range("N13:R13").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("計算書").Select
ActiveWindow.SmallScroll Down:=15
Range("A25").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
If Range("A25") = 0 Then
Range("A25").Select
ElseIf Range("A26") = 0 Then
Range("A26").Select
Else
Range("A25").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
End If
0119デフォルトの名無しさん
NGNG現在セルA1〜A1000くらいまで1種類1000個のデータがあります。
未使用だったSheet2に、CommandButton1を置いて
Sheet1のデータの算術平均値をSheet2のセルA1に表示するようにしてみました。
Private Sub CommandButton1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Sheets("Sheet2").Cells(1, 1).Value = "=AVERAGE(Sheet1!A1,Sheet1!A1000)"
End Sub
このとき、Sheet2のセルA2に"500"と入力してからCommandButton1を押すと
Sheets("Sheet2").Cells(1, 1).Value = "=AVERAGE(Sheet1!A1,Sheet1!A1000)"
を
Sheets("Sheet2").Cells(1, 1).Value = "=AVERAGE(Sheet1!A1,Sheet1!A500)"
と変えられるようにしたいと考えております。
Sheet2のセルA2の値によって、平均値の計算に使うSheet1のA列のセルの行数を
任意に変えたいと思うのですが、なかなか妙案が思いつきません。
よろしければアドバイスをお願い致します。
0120デフォルトの名無しさん
NGNGなんの観測データか気になって3行目以降読んでない私。
0121デフォルトの名無しさん
NGNGはダメですか?
0122デフォルトの名無しさん
NGNGリファレンス型でなおかつ目的別にVBAが記載されてまして、ちゃんとコード例も載ってます。
なかなかいい感じの本なのでここに紹介をさせて頂きます。
御聴講ありがとうございました
0123デフォルトの名無しさん
NGNGすなおに計算。
Private Sub CommandButton1_Click()
Dim sum As Double
Dim i As Long
Dim n As Long
Sheets("Sheet2").Activate
sum = 0
n = ActiveSheet.Range("A2")
For i = 1 To n
sum = sum + Sheets("Sheet1").Cells(i, 1)
Next i
ActiveSheet.Range("A1") = sum / n
End Sub
0124デフォルトの名無しさん
NGNGどこに何をコピーしたいの?
0125116
NGNG以下の構文ですとChecboxes(i)でエラーになります。
Dim i as Integer
i = 1
If Worksheets("Sheet1").Checboxes(i) = True Then
Worksheets("Sheet1").Cells(1, 1).Value = 22
End If
0126デフォルトの名無しさん
NGNG素直にvalueを参照しる。
0127デフォルトの名無しさん
NGNG抽出したデータにだけ、B列に「2」と入れたいのですが、
どうすればいいですか?
0128デフォルトの名無しさん
NGNG単価(既定)と数量(ComboBoxで選択)にて合計(Select Caseで表示)
を表示できるようにしたいのですが、ComboBoxで数量を選択しても合計値が
リアルタイムで表示されません。
毎回、VBEの方でプレイボタン(実行)を押さないとワークシートに反映されません。
どうしたらよいでしょうか?
0129デフォルトの名無しさん
NGNGSelect caseは制御構造で何かを表示したり云々な機能はないよ。
0130デフォルトの名無しさん
NGNGありがとうございます!
0131デフォルトの名無しさん
NGNGSheets("入力表").Select
Range("N13:R13").Select
↑このN13:R13のデータを
("計算書")Sheetの
A25から始まって、順に下に表をつくるように
データを転記させたいのです。
気づくのに遅くなってごめんなさい!
0132デフォルトの名無しさん
NGNGSheets("入力表").Range("N13:R13").Copy Sheets("計算書").Range("A25")
0133132
NGNGおっと、こーゆー意味か?
Dim i As Long
For i = 14 To 18
Sheets("計算書").Cells(11 + i, 1) = Sheets("入力表").Cells(13, i)
Next i
0134デフォルトの名無しさん
NGNGtextbox1に表示されたデータと全く同じものを
別のセルに表示させるにはどうすればよいのでしょう?
例えばtextbox1が[1000円]だったらD1も[1000円]
textbox1が[2000円]に変わったらD1も[2000円]とリアルタイムに表示させたいのです。
どなたかよろしくお願いいたします。
0135デフォルトの名無しさん
NGNGrange("D1").value = textbox1.value
とかいう風にすれば
テキストボックスの値が変わるとセルD1の値にも反映される
0136デフォルトの名無しさん
NGNGご親切にありがとうございます!!
0137デフォルトの名無しさん
NGNGFor i = 1 To Worksheets.Count - 1
Worksheets(2).Delete
Next i
とすると削除しますか?というダイアログがでてしまうので
それをでないようにしたいのですが、なにか方法はあるでしょうか?
0138デフォルトの名無しさん
NGNGDisplayAlerts プロパティ
0139デフォルトの名無しさん
NGNGキーワードを検索し、そのキーワードがあるセルのページ番号(印刷のページ番号)を
読み込みたいのですが、何かいい方法ないですか?
0140デフォルトの名無しさん
NGNGちょっと文章が分かりにくい
もうちょっと詳しく書いて
ページ番号って対象のあるセルのあるシート番号ですか?
0141デフォルトの名無しさん
NGNG>ページ番号って対象のあるセルのあるシート番号ですか?
ちゃんと読んでやれ。
0142デフォルトの名無しさん
NGNGSub test()
'キーワードがあるシート
Sheets(1).Activate
ActiveWindow.View = xlPageBreakPreview
i = 0
For Each pb In Sheets("work").HPageBreaks
If pb.Type = xlPageBreakAutomatic Or pb.Type = _
xlPageBreakManual Then
ReDim Preserve lngRow(i)
lngRow(i) = Sheets("work").HPageBreaks(i + 1).Location.Row
i = i + 1
End If
Next
strMsg = "検索したい文字を入力してください"
strVal = InputBox(strMsg, "入力", "テスト")
'キーワードがある列
Set c = Columns("A:A").Find(strVal, LookIn:=xlValues, LookAt:=xlWhole)
c.Activate
lngRow2 = Selection.Row
For j = UBound(lngRow) To 0 Step -1
If lngRow2 >= lngRow(j) Then
Exit For
End If
Next
MsgBox j + 2 & "ページ"
End Sub
0143デフォルトの名無しさん
NGNG限定しないとすると、VPageBreaks も拾ってやらんと行けなくなるけど。
0144VBVB
NGNGEXCELを落として、VBがアクセスエラーすると「バグじゃー」と
騒ぎます。
EXCELをユーザーには終了させないようにすれば、騒ぎが
とまるのですが、どうすればいいのでしょうか?
0145VBVB
NGNGで終了できないようにはできる。
ペケの場合は終了できない。VBからは終了できる。
そのためには、VBから終了フラグをセットしてやればいい。
これでOK完成とおもったが、問題がある。
EXCELで終了中に終了のキャンセルをした場合は、
VBは終了したと思っているのに、EXCELは残っている。
どうする?
0146デフォルトの名無しさん
NGNGありがとうございます!
助かりました。
詳細を述べますと
1ブックに20シートぐらいあるファイルを
検索しページ番号を抜き出したいのです
1シートのページ番号は142さんのやり方で出来きますが
シートをまたいだページ番号取得も出来ますでしょうか?
それとページが1ページしかないシートがエラーになりますが
これも対応出来ますでしょうか?
0147VBVB
NGNGVBAは難しいね。
0148デフォルトの名無しさん
NGNGおいおい、全部やってもらう気かよ。
0149デフォルトの名無しさん
NGNGありがとうございました!! 無事に内容が転機されて、
前のデータも消さずにいきました!!
ありがとうございます!
0150デフォルトの名無しさん
NGNG選択後もボックス内に「〜円」と単位を表示させるにはどうしたらよいのでしょう?
現段階だとcomboboxでリスト選択するときは「円」が表示されていますが
選択後は数字だけとなってしまいます。
よろしくおねがいいたします。
0151デフォルトの名無しさん
NGNG現段階のコードはどのようになってますか?
コンボボックスのスタイルは?fmstyledropdowncombo?
0152150
NGNGコードはイジってません(以下)。コンボボックスを右クリック→
プロパティで行っています。
Private Sub ComboBox62_Change()
End Sub
スタイルはfmstyledropdowncomboです。
すみません、よろしくお願いします。。
0153デフォルトの名無しさん
NGNG0154デフォルトの名無しさん
NGNGエクセルのデータを出力したい場合、どのようにマクロ書けばいいのですか?
0155デフォルトの名無しさん
NGNGシートに保護をかける。
0156デフォルトの名無しさん
NGNGこんなかんじでどうでしょう。「円」の後ろに半角スペースを入れてください。
Private Sub ComboBox1_Click()
ComboBox1.Value = ComboBox1.Value & "円 "
End Sub
0157150
NGNGありがとうございます、
Private Sub ComboBox62_click()
ComboBox1.Value = ComboBox1.Value & "円"
End Sub
を試してみたのですが、コンボボックス1には「100円円」と
円が二つ繋がってしまいます。また、単価と数量と合計も示しているのですが
このコードを挿入すると合計が#VALUEとなってしまいました。
お手数かけてもうしわけありません。
0158150
NGNG「100円円」と表示されたのは、コンボボックスのプロパティで
選択した範囲にユーザー定義で「円」を表示させていたためでした。
よってユーザー定義を解除したところ、コンボボックスには「100円」と
表示されましたが、単価*数量=合計 の合計は#VALUEのままです。
説明が下手で申し訳ありません、宜しくお願いいたします。
0159デフォルトの名無しさん
NGNG×
Private Sub ComboBox62_click()
ComboBox1.Value = ComboBox1.Value & "円"
End Sub
○
Private Sub ComboBox1_click()
ComboBox1.Value = ComboBox1.Value & "円"
End Sub
0160156
NGNGセルのユーザー定義を解除しなくても、「円」の後に半角スペースを入れると「円」と表示されると思うのですが。半角スペースがないと「円円」と表示されます。何でなんでしょうね。
シート1のB1が単価(コンボボックスの値)として試してみてください。
Private Sub ComboBox62_Click()
ComboBox62.Value = ComboBox62.Value & "円 " '←円の後ろに半角スペース
Sheets(1).Range("B1").Value = Left(ComboBox62.Value, Len(ComboBox62.Value) - 2)
End Sub
0161150
NGNG度々本当にありがとうございます。お教え頂いたものをペーストしてみましたが、
やはり合計額が#VALUE!になってしまいます。。
しかし新しいワークシートにて最初から作成したところ、しっかり
単価*数量=合計が表示され、単価のコンボボックスにも「〜円」が表示されました。
コードやプロパティを見直してみても、どこがおかしいのかわかりませんが
教えてくださったコードを挿入しなければ、「円」は表示されませんが合計は
エラーになりません。。
ご丁どうしたらいいでしょう(笑
0162156
NGNGPrivate Sub ComboBox62_Click()
msgbox Left(ComboBox62.Value, Len(ComboBox62.Value) - 2)
End Sub
これを実行した時に数字だけが表示されるはずですが、いかがでしょうか。もう少しフォームの仕様とかを詳しく書いていただくと、わかるかもしれません。
0163デフォルトの名無しさん
NGNGCommandButton1を押したときに、B3セルからE15セルまでの範囲を指定して
カンマ区切りのcsv形式で保存することを考えております。
0164デフォルトの名無しさん
NGNGPrivate Sub CommandButton1_Click()
Range("B3:E15").Select
ActiveWorkbook.SaveAs FileName:= _
"Book1.csv", FileFormat:=xlCSV
End Sub
0165150
NGNGありがとうございます。そのコードを実行したところ、
「実行エラー5 プロシージャの呼び出し、または引数が不正です。」と表示されました。以下にもう少し詳しく記載させていただきます。
sheet2の
I13からI15まで「100,200,空欄」の3つを記入し、これを「単価」として名前を定義。
同じくSheet2のF2からF12まで「空欄,1〜10」の11個を記入し、これを「数量」として名前を定義。
次にSheet名「計算表」にて
単価のComboBox62はC96に配置し、Linked cellにC96、ListFillrangeに「単価」を挿入。
数量のComboBOx51はD96に配置し、Linked cellにD96、ListFillrangeに「数量」を挿入。
D96に「=C96*D96」を挿入。
知識不足、説明不足で申し訳ありません、宜しくお願いします。
0166デフォルトの名無しさん
NGNG文字列以外のセルは#REF!って表示されません?
0167デフォルトの名無しさん
NGNGセルの大きさが小さいだけ
セル幅を広げりゃ万事解決
0168156
NGNGComboBox62のLinked cellを削除し、以下のコードを貼り付けていただくとどうなるでしょうか。
Private Sub ComboBox62_Click()
ComboBox62.Value = ComboBox62.Value & "円 " '←円の後に半角スペース
Sheets("計算表").Range("C96").Value = Left(ComboBox62.Value, Len(ComboBox62.Value) - 2)
End Sub
0169デフォルトの名無しさん
NGNGエクセル2000ですが、選択された部分だけでなく、アクティブなシート全体の値が保存されませんか?
0170デフォルトの名無しさん
NGNGあ、ほんとうだ。
新しいマクロの記録で、
(1) B3:E15 を選択・コピー。
(2) シートを1枚追加。
(3) 追加したシートの A1 にペースト。
(4) CSV で保存
をやって、そのコードを
Sub CommandButton1_Click() 〜 End Sub の
間に貼りつける。
0171デフォルトの名無しさん
NGNG「起動時のオプション」で、「フォーム/ページの表示」で指定してある
フォームが開いてしまうのですが、これを開かないようにする方法ってありますでしょうか?
いろいろ調べたつもりなんですが、わかりませんでした;;
0172デフォルトの名無しさん
NGNG開かない方法はわかりませんが、私はこんな感じでやっています。
Dim objAC
Set objAC = CreateObject("Access.Application")
objAC.OpenCurrentDatabase "c:\tmp.mdb"
objAC.DoCmd.Close 2, "Fmenu",2 '開いたメニューを閉じます
objAC.run "abc" '続いて実行したいマクロ
Set objAC = Nothing
0173デフォルトの名無しさん
NGNG今まで、OpenCurrentDatabase の直後に Visible = false って方法でやってたんですが、
お教えいただいた方法でも、一瞬、チラッとフォームが見えちゃいますね。
社内向けツールなんで、「仕様です」のひとことで済ますことにします。
う〜ん、残念。
0174デフォルトの名無しさん
NGNG各セルにある文字をキーにして(この場合「_」がキー)
「A」「B」「C」の様に入れることはできるでしょうか?
SUBSTITUTE関数を使ってもTABコードがうまくいかないのですが…
宜しくお願いします。
0175150
NGNGありがとうございました!できました!!
0176デフォルトの名無しさん
NGNG移動できるようにしたいです。
どうすればよろしいでしょうか?
0177デフォルトの名無しさん
NGNGCall
0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNG折れ線グラフで、マーカーの部分にカーソルを重ねると「系列 "A株式会社" 要素 "100" 値 "300"」
のような感じで表示されますが、別のデータをグラフの元となっているセルから引用して表示させたい
と思っています。
例えば「系列 "A株式会社" 要素 "100" 値 "300" 内容 "○○○"」のような感じで「内容 "○○○"」
を追加したいと思っています。どなたかご存知でしたら教えて下さい。
0180デフォルトの名無しさん
NGNG何か良い関数はないでしょうか。
0181デフォルトの名無しさん
NGNG例えばセルA1に文字や数字を打ち込んだ後に、他のセルをアクティブに
しようとした瞬間に(A1がアクティブのままでということ)、メッセージボックスを
出す事って可能でしょうか?
WorkSheet_Changeでは無理っぽいのですが・・・。
ご存知の方よろしくお願いいたします。
0182デフォルトの名無しさん
NGNG元の位置がアクティブなままと言うのはないみたい。
何をやりたいのかよくわからんが、元の位置に何かしたいということなら、Worksheet_SelectionChange でせっせと元の位置を覚えておけばいいと思う。
Private OldRange As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not OldRange Is Nothing Then
OldRange.Font.Color = RGB(0, 0, 0)
End If
Set OldRange = Target
Target.Font.Color = RGB(255, 0, 0)
End Sub
とやれば、選択しているところのフォントだけが赤くなるよ。
0183デフォルトの名無しさん
NGNGテキストボックスに入力したデータをA5のセルに表示する方法を教えてくださいませんか?
0184デフォルトの名無しさん
NGNGテキストボックスに入力したデータをCtl+Cでコピーして
A5のセルCtl+vでペースト
0185デフォルトの名無しさん
NGNGCells("A5).Value = Edit1.value
0186デフォルトの名無しさん
NGNGExelのVBAで簡単なプログラムを作りました。
内容はセルの内容を貼り付けたり切り取ったりを繰り返すだけの物です…。
ところが内容を付け加えていくうちに急に処理が重くなり,当初より10倍以上の時間が掛かるようになってしまいました。
プルグラムが長くなりすぎたのかと思い,試しに付け加えた部分を削除してみましたが,やはり遅いままでした。
このような状態の解決法は何かあるんでしょうか?
ご教授よろしくお願いします。
0187デフォルトの名無しさん
NGNGふざけたループが廻ってたりとか。
0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNG0190デフォルトの名無しさん
NGNG0191186
NGNGちなみに他のPCで試してみても同じ状態です。
0192デフォルトの名無しさん
NGNGこのスレに張り付けられているコードを見たところ
文と文の区切り文字が使われていないみたいなんですが
:は付けたらいけないのでしょうか?あっても問題ないのでしょうか?
0193192
NGNGやってからこい!って言われる前にやってみました。
あっても問題ないんですね。
スッキリしました。スレ汚し巣マソ
0194デフォルトの名無しさん
NGNGusedrangeを使った時に処理が遅くなった経験があります。見た目はデータがないのに、その部分まで対象になっていたので処理が遅くなっていました。
0195186
NGNGそのケースには該当しないようです。
0196デフォルトの名無しさん
NGNGん〜〜 もしかして行末に全部 : つけてるとかw
0197186
NGNG0198186
NGNG誰だおまえは?
0199KAKA
NGNG最近VBをはじめた初心者です。
くだらない質問なんですが、
VBとVBAの基本的な違いは何ですか?
箇条書きで構わないので、メリットとデメリットを
教えてください。
お願いします。
0200デフォルトの名無しさん
NGNG最近セックスをはじめた初心者です。
くだらない質問なんですが、
セックスとアナルセックスの基本的な違いは何ですか?
箇条書きで構わないので、メリットとデメリットを
教えてください。
お願いします。
0201デフォルトの名無しさん
NGNG0202デフォルトの名無しさん
NGNGVBAは,各アプリケーション固有(ワード,エクセル等)の
マクロ処理言語として提供されています。
パッケージ版のVBとの違いは,パッケージ版VBは単体で
動作することを前提としたプログラムを作成しますが,
VBAの場合は,それが組み込まれているアプリケーション
(エクセル,ワードなど)の上で動作します。
0203KAKA
NGNGありがとうございます。
まだまだ勉強が足りませんでした。
0204デフォルトの名無しさん
NGNGAccessでその機能が無いようなので、VBAで行うとすれば、
マウススクロールを無効にするようなコードってありますでしょうか?
0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNGhttp://support.microsoft.com/default.aspx?scid=kb;ja;308636#appliesto
0207デフォルトの名無しさん
NGNG有り難うございます!
リンクをヒントに探したらこんなのも見つかりました。
http://support.microsoft.com/default.aspx?scid=kb;JA;278379
・・・後半部分が美味しそうなのですが、日本語が壊れています・・・(汗
0208デフォルトの名無しさん
NGNGテーブルをエクセル形式にエクスポートした際にEXCEL5.0/95形式で
保存されてしまうのですが、2000形式の保存を行う方法はありませんか?
現状:
DoCmd.OutputTo acTable, "EXP", "MicrosoftExcel(*.xls)", "C:\test.xls", False, ""
0209デフォルトの名無しさん
NGNGexcelオブジェクト作って読み込ませて保存。
とか適当に言ってみる。
0210デフォルトの名無しさん
NGNGPingの応答確認をしたいのですが。例えばA1にIPアドレスを入力し、
マクロ実行後、A2に○or×を表示させたいのですが。
よろしくお願いします。
0211デフォルトの名無しさん
NGNGICMPを扱えないといけません。rawソケットでできるかな?できないかな?みたいな。
と適当
0212デフォルトの名無しさん
NGNGPublic Function IPTest(IP As String) As Boolean
On Error Resume Next
Dim F As Integer, RetCode As Integer, CR As String
CR = Chr(13) & Chr(10)
F = FreeFile
Open "IPTest.Bat" For Output As #F
Print #F, "@Echo Off" & CR & "Ping -n 1 -w 1 " & IP & " > Nul" & CR & "Echo %ErrorLevel% > Res.Txt"
Close #F
Shell "IPTest.Bat", vbHide: Do: DoEvents: DoEvents: DoEvents: DoEvents: DoEvents: Loop While Dir("Res.Txt") = ""
Kill "IPTest.Bat"
F = FreeFile
Open "Res.Txt" For Input As #F
Input #F, RetCode
Close #F
Kill "Res.Txt"
IPTest = IIf(RetCode = 1, False, True)
End Function
0214デフォルトの名無しさん
NGNGTimerloop
End Sub
Sub Timerloop()
Call ThisWorkbook.TimerProc '
Application.OnTime Now + TimeValue("00:00:1"), "Timerloop"
End Sub
VBAで1秒周期で処理をさせたいTimerProcを上記のように実装しています。
ところが
シートラベルをクリックしてシート名称が変更できる状態にすると
この処理が停止します。
エラーでもないのにEXCELが中断モードになるのだと思いますが、
なにか回避する方法はないものでしょうか?
0215214
NGNGしかし、シートラベルをクリック(ダブル)するとシート名変更の
モーダル画面が出るようになった。 モーダル画面中はタイマーは止まるが
画面を消すともとどうり動作するようになった。
0216デフォルトの名無しさん
NGNG0217デフォルトの名無しさん
NGNG0218デフォルトの名無しさん
NGNG100だったら固まらん。 100000000ぐらいにしてみたら。
0219デフォルトの名無しさん
NGNGサブフォーム内のテキストボックスにテーブルの項目を関連づけました。
任意のテキストボックスにフォーカスを当てることはできたのですが、
テキストボックスのプロパティを変更することが出来ませんでした。
1レコード目はテキストボックスを使用不可にし、2レコード目を使用可にすること
はできないのでしょうか?
0220デフォルトの名無しさん
NGNGうましか
0221デフォルトの名無しさん
NGNGEXCEL VBA関連の本を読んで、できるものでしょうか?
0222デフォルトの名無しさん
NGNGできないなら覚えればいい。って言う話ですな
0223デフォルトの名無しさん
NGNG0224デフォルトの名無しさん
NGNG漏れはVBは触ったことがないけど、EXCELのヘルプを読みまくって、なんとか作れるようになったよ。
まぁ効率悪いところはいろいろあるんだけどさ。
0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNG漏れも最近始めた。
まぁがんがっていこうや (´∀`)
0227デフォルトの名無しさん
NGNGEXCELでセルをクリックしたときにイベントを発生させたいのですが
どのようにすればよろしいのでしょうか。
よろしくお願いします。
0228227
NGNGすみませんでした。
0229デフォルトの名無しさん
NGNG使っています。ただデフォルトで開くディレクトリがマイドキュメントに
なってしまうので、できればカレントを表示させたいのですが、良い方法はありますか?
0230229
NGNGミスってしまった
getfilepath()じゃなくてApplication.GetOpenFileName です
0231229
NGNGこんな風にしたらできますた
Function OpenLogFile() As String
Dim varFullPath As Variant
Dim i As Integer
Dim myPath As String
Dim myDrive As String
myPath = Application.ActiveWorkbook.Path
i = InStr(myPath, "\")
If i < 3 Then
OpenLogFile = ""
MsgBox "ネットワークから起動するときはドライブを割り当ててください", vbOKOnly + vbExclamation
GoTo No_UNC
End If
myDrive = Left(myPath, 2)
ChDrive myDrive
ChDir myPath
varFullPath = Application.varFullPath = Application.GetOpenFileName _
("ログファイル (*.log; *.txt),*.log;*.txt")
No_UNC:
OpenLogFile = varFullPath
End Function
A:\〜Z:\まで必ず\が3文字目にあることを利用してChDriveをした、と
オナニー見せつけて申し訳ない
0232デフォルトの名無しさん
NGNGで、UNCはどうするの?
0233デフォルトの名無しさん
NGNG'モジュールレベルで宣言
Declare Function SetCurrentDirectory Lib "kernel32" Alias "SetCurrentDirectoryA" _
(ByVal lpPathName As String) As Long
'カレントドライブとフォルダの変更(ネットワーク対応)
Function OpenLogFile() As String
Dim varFullPath As Variant
Call SetCurrentDirectory(Application.ActiveWorkbook.Path)
varFullPath = Application.GetOpenFilename("ログファイル (*.log; *.txt),*.log;*.txt")
OpenLogFile = varFullPath
If varFullPath = False Then OpenLogFile = "" 'キャンセルされた場合
End Function
0234207
NGNGhttp://support.microsoft.com/default.aspx?scid=kb;JA;278379
を利用し、マウスのスクロールによるレコード移動を禁止したところ
フォームのテキストボックスでEnterキーを押すとTabキーのように
次の入力ボックスへカーソルが移動するようになってしまいました。
(それまではテキストボックス内でEnterをおすと改行してました)
オプション設定で「移動しない」にしても、本当に何も起きません。
Ctrl+Enterで改行することは出来るのですが、
使用者がPC初心者のため、普通にEnterで改行出来るようにしたいのです。
Enterを押すと Ctrl+Enterが送られるようにするとか出来る物でしょうか?
0235デフォルトの名無しさん
NGNGまずはこれを確認
ttp://www.akj.co.jp/access/jirei/u0140.html
0236デフォルトの名無しさん
NGNGメール作成中Word2002のマクロで、メールの形式をテキストに
変更するマクロを書きたいのです。
どなたかお助けください。
HTMLメールへの返信をテキスト方式で行う際に、整形する
マクロを作ったのですが、テキスト方式にするためのプルダウン
コントロールへのアクセスの仕方がわからんです。
0237デフォルトの名無しさん
NGNGマクロ記録じゃダメでつか?
0238デフォルトの名無しさん
NGNGExcelで例えばセルA1に入力されてる文字列中に半角文字があるかを調べるには
どんなコードを書いてやればよいのでしょうか?
0239デフォルトの名無しさん
NGNG日本語で『こんにちはと、言う。』と入力すれば
ダイアログに『こんにちは』と出るプログラミング言語登場!!
PNGもサポートしてるので、かなりおすすめです!!
また、【『http://www.xxxx.xx/』を、『index.htm』へ、HTTPダウンロード。】
とすれば自動的にダウンロードできる優れ物です!!
↓日本語プログラミング言語『ひまわり』
http://hima.chu.jp/index.htm
↓日本語プログラミング言語『ひまわり』スレッド
http://pc5.2ch.net/test/read.cgi/tech/1083053283/l50
0240デフォルトの名無しさん
NGNG関数があるかどうかは知らん。
unicodeだから単純に半角文字コードか否かを見るだけでも判断可能。
0241デフォルトの名無しさん
NGNG'半角チェック関数
Function CheckNarrow(Address As String) As Boolean
'戻り値 True:半角文字がある False:半角文字は無い
&ndsp;&ndsp;Dim CheckString As String
&ndsp;&ndsp;CheckString = Range(Address).Value
&ndsp;&ndsp;CheckNarrow = (CheckString <> StrConv(CheckString, vbWide))
End Function
'↓使い方
Sub StartCheck()
&ndsp;&ndsp;If CheckNarrow("A1") Then
&ndsp;&ndsp;&ndsp;&ndsp;MsgBox "半角があります。"
&ndsp;&ndsp;Else
&ndsp;&ndsp;&ndsp;&ndsp;MsgBox "半角はありません。"
&ndsp;&ndsp;End If
End Sub
0242デフォルトの名無しさん
NGNGなるほど。
0243デフォルトの名無しさん
NGNG'半角チェック関数
Function CheckNarrow(Address As String) As Boolean
'戻り値 True:半角文字がある False:半角文字は無い
Dim CheckString As String
CheckString = Range(Address).Value
CheckNarrow = (CheckString <> StrConv(CheckString, vbWide))
End Function
'↓使い方
Sub StartCheck()
If CheckNarrow("A1") Then
&ndsp;&ndsp;MsgBox "半角があります。"
Else
&ndsp;&ndsp;MsgBox "半角はありません。"
End If
End Sub
今度はどうだ!
0244デフォルトの名無しさん
NGNG引数はセルの位置ではなくて評価する文字列にした方が汎用性が上がると思うよ。
0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNGそうですね。言われてみればそうだ・・・。
フォローサンクス!
0247デフォルトの名無しさん
NGNGついでに引数を文字列に変更しました。今度こそいいよね。
'半角チェック関数
Function CheckNarrow(CheckString As String) As Boolean
'戻り値 True:半角文字がある False:半角文字は無い
CheckNarrow = (CheckString <> StrConv(CheckString, vbWide))
End Function
'↓使い方
Sub StartCheck()
If CheckNarrow(Range("A1").Value) Then
MsgBox "半角があります。"
Else
MsgBox "半角はありません。"
End If
End Sub
0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNGいやいや、可読性、再利用性、修正箇所の減少etcetc大事なことですよ。
0250デフォルトの名無しさん
NGNGOutlookはマクロの記録ができません。
で、この操作はWordでも記録できません。
0251デフォルトの名無しさん
NGNGじゃあヘルプひけって話になる訳ですね。
0252デフォルトの名無しさん
NGNGおおお、ありがとうございます。
vbWideなんて定数があったんかぁ。
ソースまで頂いちゃって、乙です。m(_ _)m
0253デフォルトの名無しさん
NGNGで、ヘルプでもGoogleでも全く引っかからないんです。(はぁと
0254デフォルトの名無しさん
NGNGその2バイト文字の1バイト目のみが送られ、別の漢字に変わったりするんですが、解消方法知ってる方いませんか?
VB本体、他のアプリでは問題なく、ATOK,IMEどちらも同じ症状です
0255デフォルトの名無しさん
NGNG意味が分からん。ATOKだってIMEだ。
0256デフォルトの名無しさん
NGNGすんません、MS-IMEでもという意味でした
具体的には、VBA Editorで書いたコードを検索しようとしてCtrl+Fで検索画面を出すじゃないですか
そこの検索文字列に例えば、"数量"と入れると"雛"と表示されるんです
数量がS-JISで文字コード"9094 97CA"、雛が"9097"
数と量、両方の2バイト目が省かれた漢字が入力されてる感じなんです
>>254にも書いた通り、他のアプリ(VBとか)の検索画面では全く問題ないんです
0257229
NGNG>>233
おお!そんなAPIがあったとは知らなかった
UNC形式でのカレントディレクトリ変更もばっちり動きました
スマートなのでこちらに書き換えします
ありがとうございました
0258デフォルトの名無しさん
NGNGちなみに入力が必要なセルはきっちりと順番に並んではいません。
そこで、
1、再入力が必要なセルにあらかじめ色をつけておき
2、値を再入力すると通常の色に戻る
というようなことができないかと考えているのですが、マクロで実現できないでしょうか?
0259デフォルトの名無しさん
NGNG条件付き書式でもある程度戦えると思った。
0260デフォルトの名無しさん
NGNGPrivate Sub Worksheet_Change(ByVal Target As Range)
Target.Interior.ColorIndex = xlNone
End Sub
0261デフォルトの名無しさん
NGNGOffice XPじゃない?
うちでも発生するからバグだと思うが
ただ技術情報にも出ていない
面倒だから問い合わせていないけどMSに問い合わせた方が宜しいね
0262デフォルトの名無しさん
NGNGすいません。教えてください。
VBAでファイルを名前を変えて保存を実施するのに、名前を
20040527という風に4桁2桁2桁表示にしたいのですが、どうしてもうまく
いきません。
現在、設定しているのは
date = Year(Date) & Month(Date) & Day(Date)
というのを使用して、形式をいろいろ変更しているのですが、
どうしても月と日が2桁で保存できないのです。
どうやって、4桁2桁2桁の名前で保存できるのでしょうか?
0263デフォルトの名無しさん
NGNGFormat(DateSerial(2004, 5, 28), "yyyymmdd")
0264デフォルトの名無しさん
NGNGありがとうございます。うまくできました。
0265デフォルトの名無しさん
NGNGう、、やっぱりうまくいきませんでした。
修正エラーって言われてしまいます。
0266デフォルトの名無しさん
NGNG>>263じゃないし、漏れもあんま詳しくないけど
日付型だとまずいんでない?
Cstr(Format(DateSerial(2004, 5, 28), "yyyymmdd") )とかは?
0267263
NGNGDate はシステム日付を取得する関数だが
Date =...と書くとシステム日付を変更するステートメントになる。変数ではないので変数名を変えなされ。
もし今日当日の日付のファイル名を作りたいなら↓みたいな感じか?
Dim Filename as String
Filename = Format(Date, "yyyymmdd")
Open Filename for...
--------------------------------以下ヘルプより
Date ステートメント
現在のシステムの日付を設定するステートメントです。
構文
Date = date
Microsoft Windows 95 で実行されるシステムの場合は、1980 年 1 月 1 日〜2099 年 12 月 31 日の
範囲の日付を指定する必要があります。Microsoft Windows NT で実行されるシステムの場合は、
1980 年 1 月 1 日〜2079 年 12 月 31 日の範囲の日付を指定する必要があります。
Macintosh の場合には date に1904 年 1 月 1 日 〜 2040 年 2 月 5 日の範囲の日付を指定する必要があります。.
0268263
NGNG0269デフォルトの名無しさん
NGNG1970 1/1なUNIX時間じゃ無いんですね。
0270デフォルトの名無しさん
NGNG遅レスすんません。
色を無色にする操作はそれでできますね。
理想を言えば、値を入力してEnterを押した瞬間色が変わってほしいのですが
Enterのタイミングに合わせてマクロが動くようにするのはやっぱり無理でしょうか?
0271デフォルトの名無しさん
NGNGやはり修正エラーがでてしまいます。。。
>>267
そうです。毎日のファイルを吐き出したいため、日付フォーマットで保存し、
読み出すときもその日のファイルを読み出すために作成しているのです。
>Dim Filename as String
>Filename = Format(Date, "yyyymmdd")
>Open Filename for...
こうする場合は、Filenameの変数はどうやって日付の値を取得するのでしょうか?
Filename = Year(Date) & Month(Date) & Day(Date)
Dim Filename as String
Filename = Format(Date, "yyyymmdd")
で定義してみましたが、やはり仮に本日ならば、20040528にはならず、
2004528となってしまいます。
Date関数を使うとだめなのでしょうか?
0272デフォルトの名無しさん
NGNGDim Filename As String
Filename = Year(Date) & Month(Date) & Day(Date)
Filename = Format(Date, "yyyymmdd")
0273デフォルトの名無しさん
NGNGこれではいかが?
Filename = Year(Date) & Right("0" & Month(Date), 2) & Right("0" & Day(Date), 2)
0274デフォルトの名無しさん
NGNG暗号化などよい方法はないものでしょうか?
0275デフォルトの名無しさん
NGNGDim Filename As String
Filename = Format(Date, "yyyymmdd")
Range("A1").Value = Filename
A1に"20040528"が表示されるから
Filenameには希望通りの値(文字)が入ってると思うんだけど
(WinXP+Excel2003)
0276デフォルトの名無しさん
NGNG基本中の基本は、ある数とのxorを取ること。
A xor B = C
C xor B = A
VBAならパスワード付きファイルにデータを保存したりするのが楽ちんな気もします。
0277デフォルトの名無しさん
NGNGありがとうございます
暗号化したいのは文字列なんですが、アレンジして使えそうです
0278デフォルトの名無しさん
NGNG次のセルに移動すると同時に色が変わりませんか?
どんな感じになってるんですかね。
0279デフォルトの名無しさん
NGNGすいません。
ものすごく初心者なので、せっかく書いていただいた>260をどう使えばいいのかよくわかってないんです。
privateで始まっているのでこれはサブルーチンみたいなものだと思ったのですが、
Sub macro1()
worksheet_change(selection)
End Sub
というような感じで使用するということなのですか?
0280デフォルトの名無しさん
NGNG私は 278 ではないが、
(1) [Alt] + [F11] で VBエディタを表示させて
(2) [Ctrl] + [R] でプロジェクトを表示させて、
(3) 対象とするシート(たとえばSheet1)をダブルクリックする。
(4) コードウィンドウが表示されるから、そこに >>260 をそのまま
コピペする。
(5) VB エディタは閉じてよい。
(6) Excel の Sheet1 に戻って、てきとーにセルに色をつけておく。
(7) 色をつけたセルの値を変更してみる。
(8) (゚Д゚)ウマー
0281デフォルトの名無しさん
NGNGあれは、標準モジュールではなくシートモジュールに書きます。
Visual Basic Editorの左上のウィンドウに、Microsoft Excel Objects以下に、
存在するシート名とThisWorkbookというのがありますが、該当するシートを
ダブルクリックした時に右側にウィンドウが開きます。
右側のウィンドウの上部に2つのコンボボックスがありますので、左側で
"Worksheet"、右側でChangeを選択すると、空のプロシージャが挿入されるので、
あとは>>260のようにするだけ・・・と。
こんな説明でよい?
0282デフォルトの名無しさん
NGNG若干異なったりするので、質問する時はバージョンまで書いたほうがよいと思う。
0283271
NGNGおかげでうまく日付保存をすることができました。
0284デフォルトの名無しさん
NGNGできました。どうもありがとうございます。
すごいです。こんなことができるなんて!
>282さま
おっしゃる通りですね。今更必要ないかもしれませんが、家のPCには2000が入っており、会社のものは確か2003だったと思います。
0285デフォルトの名無しさん
NGNG原因は何でしょうか。単にフォントの入れすぎでしょうか。
XPで,メモリーは512MBなんですけど・・・。
0286デフォルトの名無しさん
NGNGCPU使用率表示させながら実行してみ。コードが問題か力不足かがわかる。
漏れが前作らされたの、ファイル開くのにCPU100%で10分以上頑張ってたよ。
ちなみにP4/256MBメモリはたいして消費してなかった。
0287デフォルトの名無しさん
NGNGふぅん。
0288デフォルトの名無しさん
NGNGできますか?できる場合は、どうすればできるでしょうか?
0289デフォルトの名無しさん
NGNGtop
left
0290デフォルトの名無しさん
NGNGこういう関数の呼び出し方とかはどこを見れば載ってるんでしょうか
0291デフォルトの名無しさん
NGNGWorksheetFunction
実際にこれで使えるかどうかは知らんが、まぁテストして見れ
0292デフォルトの名無しさん
NGNGExcel VBAのヘルプに
Visual Basicで使用できるワークシート関数一覧
という項目がある。
ここにVLOOKUPものってる。
呼び出しは>>291の通り。
0293デフォルトの名無しさん
NGNG(行全体を選択し名前ボックスに名前をつけました)
その名前の行の高さやその行が何行目かなど取得できますでしょうか?
ご教授ください。
よろしくお願いしますm(__)m
0294トカ
NGNGActiveSheet.Shapes.AddShape(msoShapeRectangle,100#,50,100,90).Select
Selection.ShapeRange.ThreeD.SetThreeDFormat msoThreeD1
Selection.ShapeRange.ThreeD.Deppth = 50#
End Sub
0295デフォルトの名無しさん
NGNGAddLineで書いた線をSetステートメントでオブジェクトを参照するように
したいのですが、やり方がわかりません・゜・(ノД`)・゜・。
線を7つぐらい引いてそれをグループ化したいだけなのですが…
教えてください。よろしくお願い致します。
0296デフォルトの名無しさん
NGNGSub NameTest()
Const AreaName As String = "test"
MsgBox Names(AreaName).RefersToRange.Row & "行目"
MsgBox "行の高さ:" & Names(AreaName).RefersToRange.Height
End Sub
0297デフォルトの名無しさん
NGNGSub GroupLine()
Const LineMax = 7
Dim ShapeLines(LineMax - 1)
For i = 1 To LineMax
ShapeLines(i - 1) = "Line " & i
ActiveSheet.Shapes.AddLine(10, i * 20, 110, i * 20).Select
Selection.ShapeRange.Name = ShapeLines(i - 1)
Next
ActiveSheet.Shapes.Range(ShapeLines).Select
Selection.ShapeRange.Group.Name = "Group 1"
End Sub
0298デフォルトの名無しさん
NGNGベーシックとかスタンダードじゃ意味ないと思うけど、自己マンのために自腹でとろうかなって。
読んだピンクのテキスト本棚に並べてさらに自己マンw
ttp://www.vbaa.jp/index.htm
0299デフォルトの名無しさん
NGNG無名過ぎて少なくとも開発現場では評価されないだろうな。
0301デフォルトの名無しさん
NGNGて言うか、有名でも VBA○○ じゃ評価は低いだろ。
0302デフォルトの名無しさん
NGNG0303298
NGNG勉強になりました。MOUSもしかり。漏れのとこは設計書なんかにExcel、Access使うことが
多いので>>302の言う事は一理ある気がしまつ。資格としては「(w」程度でしょうけど。
0304デフォルトの名無しさん
NGNG「この作業だと2時間くらいですかね〜」といいつつ、マクロで
ちゃちゃっと終わらせてあとはのんびり。30分くらい早めに
終わったことにしてみせたりもいい。
0305デフォルトの名無しさん
NGNGまあ、所詮そういう仕事しか与えてもらえないわけだ...。
0306デフォルトの名無しさん
NGNG少なくとも20000行のエクセルシートを手で一行ずつ処理するような雑用にかまけてる暇は無いですね。
そう言う単調だけれど楽な仕事って憧れます。
0307デフォルトの名無しさん
NGNGププッ、煽られて必死になるのはわかるけど、Excel で 20000 行と書いてる時点でアフォ丸出し。
Access とか勉強した方がいいぞ。
0308デフォルトの名無しさん
NGNG無色に言われたかない罠
0309デフォルトの名無しさん
NGNG現場を知らない人間の書き込みだな。
引きこもりか、まぁ、せいぜい日曜プログラマだな。
0310デフォルトの名無しさん
NGNGごめんな、そこまで必死になられるとは思わんかったよ。
せいぜい、VBA 自慢しててください。(ぷぷっ
0311デフォルトの名無しさん
NGNG0312デフォルトの名無しさん
NGNG・・・あおりしかできないヤツか。
お前、カッターだけは買うなよ。
0313カッターなんか今更買うやつなんかいるのか ?
NGNGキミ、すごいね。
VBA と煽りができるんだから、もう充分だな。(ぷぷっ
0314デフォルトの名無しさん
NGNGどっかで配ってるか?カッターって。
確か小中学校では支給してもらえたが。
なお、会社にあるそれを私物化するのは犯罪でつ。
0315デフォルトの名無しさん
NGNGご苦労様です
0316デフォルトの名無しさん
NGNG普通の家ならあるだろ ?
ヒッキーだとそんなこともわからんかもしれないけどな。(ププッ
0317デフォルトの名無しさん
NGNGその家にあるってのは誰かが買ってきてるからあるんだよ?
0318デフォルトの名無しさん
NGNGそうだよ、だから「今更」買う必要はないんだけど、何か ?
0319デフォルトの名無しさん
NGNG独り暮らしとかしたこと無いんだね。
親に依存している厨房と。
0320デフォルトの名無しさん
NGNG別に「誰か」って言うのが、一年前の自分でもいいんだよ。
0321デフォルトの名無しさん
NGNGこの板もID強制表示にしてくれよ
0322デフォルトの名無しさん
NGNG0323デフォルトの名無しさん
NGNG1年前の自分は別人ですか・・・。
アブナイ人ですね。
お前は、カッターだけは買うなよ、と。
どこに「別人」と書いてあるのか示してくれないか ?
まさか、「誰か」≡「自分以外の別人」と思ってるわけ ? (ププッ
0325デフォルトの名無しさん
NGNGってのが笑い話になるように、「誰か」には自分を含めないのが一般的だな。
もしかして受け狙いだったのか?
0326デフォルトの名無しさん
NGNG0327デフォルトの名無しさん
NGNG324 は誰にもかまってもらえないさみしい男だぞ。
2ちゃんねるでタタかれて喜んでるヤツだから〜。
おまえ、カッター買って、バスジャックするようなマネだけはやめとけよ。
0328デフォルトの名無しさん
NGNG> おまえ、カッター買って
だから、「今更カッターなんか買う必要ない」んだけどな。
わざわざ自分が >>315 で書いてまでいるのに、必死過ぎてわけわからんようになってるんだろうな...。(藁
0329デフォルトの名無しさん
NGNG目に浮かぶようですね(w
世の中でここだけだからなぁ、
328が相手してもらえるのは。
0330デフォルトの名無しさん
NGNGごめんな
>>315は漏れだよ
ついでに>>308も漏れ
つーか、いい加減止めないか!?
0331デフォルトの名無しさん
NGNG継続は力なり
そんな風に飽きっぽいからVBAプログラマはバカに
されるんだぞ、と
0332今日は有給だぁ...、午前だけなんだけどな。
NGNGごめんな、キミほど暇じゃないから >>328 書いた後寝ちまったよ。
キミは、>>329 書いた後も必死にリロードしてたんだろうな。(藁
0333デフォルトの名無しさん
NGNGたっぷり寝る時間があってうらやますぃですね。
0334デフォルトの名無しさん
NGNG激しく同意。
0335デフォルトの名無しさん
NGNGお前の日本語はわからんな。
「自分」って誰のことを指してるんだ?
0336デフォルトの名無しさん
NGNG可能ですが、何か意味が違うのでしょうか?
また、使うならどちらを使ったほうがいいですか?
0338デフォルトの名無しさん
NGNG仮にDataRangeという変数に範囲終了セルを代入した場合、
Do While ActiveCell.Range("A1") <> "DataRange"
・・・
Loop
みたいな感じの条件文にしたいんですけどうまくいきません。
(ちなみに上のような文だとセルにDataRangeという文字が入っているところまでと言う意味ですよね・・・)
じゃなくて、変数にB5のように入れてセルB5まで読み込むというふうにするにはどうすればいいでしょうか?よろしくお願いします。
0339デフォルトの名無しさん
NGNG22:00は夜だと思うぞ。
0340デフォルトの名無しさん
NGNGAddressプロパティを使えばよいのでは。
Do While ActiveCell.Range("A1").Address<>DataRange.Address
ただこれだとDataRangeのひとつ手前までしか処理されないが。
0341デフォルトの名無しさん
NGNG333 名前:デフォルトの名無しさん[sage] 投稿日:04/06/08 11:12
0342デフォルトの名無しさん
NGNG小学校行って時計の読み方から勉強しようね。
0343デフォルトの名無しさん
NGNG我慢できずに、朝から書き込んでる香具師の言う台詞か(ワラ
0344デフォルトの名無しさん
NGNGwarata
0345デフォルトの名無しさん
NGNGお前が我慢してるからって、みんなが我慢してるわけじゃないんだぞ。
「2ちゃんねる見て〜」→「でも、我慢しなくちゃ」なんて思ったことないぞ(w
お前だけだよ、「我慢」してるヤツは(プ
0346338
NGNGできません。。。
0347デフォルトの名無しさん
NGNG質問に要領をえないが、セルを順番に調べたいなら
Dim DataRange As Range
Dim rng As Range
Set DataRange = Range(Range("A1"), Range("B2"))
For Each rng In DataRange
MsgBox rng.Value
Next rng
0348デフォルトの名無しさん
NGNG自演ご苦労。
もう少し、時間を空ければいいと思うが、君には難しいみたいだね。(藁
>>338
>>347 が正解だと思うが、ゴリゴリ回したいなら...
Private Sub test()
Const StartCell As String = "B1"
Const EndCell As String = "B5"
Dim Cell As Range
Worksheets("Sheet1").Activate
Worksheets("Sheet1").Range(StartCell).Activate
Do
MsgBox ActiveCell.Value
If ActiveCell = ActiveSheet.Range(EndCell) Then Exit Do
ActiveCell.Offset(1, 0).Activate
Loop
End Sub
と言う手もある。
0349デフォルトの名無しさん
NGNG自分のことをバカにする人はひとりしかいないと。
幸せな人だなぁヽ(´ー`)ノ
0350デフォルトの名無しさん
NGNGねぇ〜
ちなみに>>344は漏れ
0351脳内二重人格ですか ? (藁
NGNG350 名前:デフォルトの名無しさん[sage .] 投稿日:04/06/12 00:20
いつも仲がいいみたいだね。
ニヤニヤ。
0352デフォルトの名無しさん
NGNG0353デフォルトの名無しさん
NGNG・HSPに関係の無い話題でスレッドを上げまくる
・HSPオフィシャルサイトの住人を名指しで誹謗中傷する
・重複スレを乱立させる
などの荒らし行為を行っています。
みんなで団結してム板のゴミどもを追い出しませんか?
【HSP関連スレ】
【皆のレイプ魔】HSP初質P25【WWEヲタ=ハゲ】
http://pc5.2ch.net/test/read.cgi/tech/1086878505/
HSP>>>>>>>>>>>>>C=糞w
http://pc5.2ch.net/test/read.cgi/tech/1071899663/
今日もどこかでHSP初心者が質問ですP19
http://pc5.2ch.net/test/read.cgi/tech/1084089079/
HSPについて
http://pc5.2ch.net/test/read.cgi/tech/1085149790/
0354デフォルトの名無しさん
NGNG我慢できずに1時間後ですか(w
0355デフォルトの名無しさん
NGNG351 名前:脳内二重人格ですか ? (藁[sage] 投稿日:04/06/12(土) 00:35
ってか、藻前が自演くさい(w
あと、脳内二重人格ってなんだろう?
脳外二重人格ってのがあるのか
0356デフォルトの名無しさん
NGNGこれをぬるぽを置換で消して、A1に「1111」A2に「2222」という
ふうに分けたいんです。
Sub ぬるぽ()
Cells.Replace What:="ぬるぽ", Replacement:=" "
↑のようにしてタブでセルを分けて、別シートにコピーしようとしたが、無理っぽい。
なにか方法はないでしょうか・・。
0357デフォルトの名無しさん
NGNG> 我慢できずに1時間後ですか(w
ププッ、自分は3時間半も我慢したってか ?
>>356
Option Explicit
Private Sub Test()
Dim A() As String
A = Split(ActiveCell.Value, "ぬるぽ", 2)
ActiveCell.Value = A(0)
ActiveCell.Offset(1, 0).Value = A(1)
End Sub
0358デフォルトの名無しさん
NGNG348 名前:デフォルトの名無しさん[sage] 投稿日:04/06/11(金) 23:47
う〜ん、我慢できないと言われたのがよっぽどくやしかったのか、
2日我慢してるな〜(ワラ
さぞかし辛かったでしょうね;;
我慢してるのはお前だけだよ(ププ
0359デフォルトの名無しさん
NGNG357氏。ありがとうございます!!!
0360デフォルトの名無しさん
NGNG解決したみたいだけど
ワークシート関数でやらずに
VBAでやりたい理由でもあんの?
0361デフォルトの名無しさん
NGNG脳内二重人格脳内二重人格脳内二重人格脳内二重人格脳内二重人格
脳内二重人格脳内二重人格脳内二重人格脳内二重人格脳内二重人格
脳内二重人格脳内二重人格脳内二重人格脳内二重人格脳内二重人格
脳内二重人格脳内二重人格脳内二重人格脳内二重人格脳内二重人格
脳内二重人格脳内二重人格脳内二重人格脳内二重人格脳内二重人格
脳内二重人格脳内二重人格脳内二重人格脳内二重人格脳内二重人格
脳内二重人格脳内二重人格脳内二重人格脳内二重人格脳内二重人格
脳内二重人格脳内二重人格脳内二重人格脳内二重人格脳内二重人格
脳内二重人格脳内二重人格脳内二重人格脳内二重人格脳内二重人格
脳内二重人格脳内二重人格脳内二重人格脳内二重人格脳内二重人格
0362デフォルトの名無しさん
NGNG356氏ではないけど、ワークシート関数だったらどうやるの?
スレ違いスマソだけど、教えて下さい。
0363356です。
NGNGいや、関数でもできるならOKなんですが。
たぶん無理?。VBAでやるとカコイイし。
357氏、厨相手の片手間にさらりとコード書いちゃうところがすごいです。
0364デフォルトの名無しさん
NGNGぼくもそう思います!!!!
0365デフォルトの名無しさん
NGNGごめん、よく読んでなかったよ
「A1に入ってる内容をA1とA2に」っていうのは関数じゃむりでした
「A1に入ってる内容をA2とA3に」ってのなら可能だけど
0366デフォルトの名無しさん
NGNGやっぱり我慢できないみたいね。
ずっと PC の前でリロードしてたんじゃないの ? ププッ
>>359
どういたしまして。
>>365
>>356 さんが、「別シートにコピー」とか書いてるから、別シートに結果を入れるならがんばればワークシート関数でできると思う。
でも、find ワークシート関数は文字列が見つからない時に #VALUE! とかを返してきたりするから、きちんとやろうとすると結構面倒な予感。
0367デフォルトの名無しさん
NGNG場合、VBA、WSH(VBS/JSript)、PERLではどの程度速さが違うんで
しょうか。簡単な正規表現でやる場合なのですが、、、
というのも、EMEDITORで作業をしたら、正規表現にしたとたん
とんでもなく遅くなってしまいますた。てか、一気に変換できず
初めは千行ごとにやらないとフリーズ状態です。
WIN XPでつ。
0368デフォルトの名無しさん
NGNGVBAで正規表現使えたっけ?と言うツッコミは無しで考えた方が良いですか?
0369デフォルトの名無しさん
NGNG0370デフォルトの名無しさん
NGNGそういやないですね。
Wordでの置換の正規表現モドキとしてください。
0371デフォルトの名無しさん
NGNGどうして自分でやってみないのですか?
0372デフォルトの名無しさん
NGNGwindows2000+EXCEL2000SR-1ですが、webbrowserコントロールをuserformに貼り付けてstopメソッドを使用すると、以下のエラーが出ます。
実行時エラー-2147221500(80040004)
stopメソッドは失敗しました。:IWebBrowser2オブジェクト
セルに貼り付けてstopメソッドを使用した場合は上記エラーは出ません。これは何故なんでしょうか?
0373デフォルトの名無しさん
NGNG先週半日かかった仕事が30分で終わってたよ。orz
0374デフォルトの名無しさん
NGNG小数点第3位を四捨五入したいのですがワークシートで=ROUND(0.005,2)だと
きちんと0.01と四捨五入されるのですが、VBAで
Range("A2").Value = Round(0.005, 2)
とやると5で切り捨てられ0、
Range("A3").Value = Round(0.006, 2)
とやると6が切り上げられ0.01になります。
VBAの場合のきちんとした四捨五入方法教えて下さい。
0375デフォルトの名無しさん
NGNG下記のような物を作りました。
Dim test1() String
Dim test2 String
FName = "C:\genka\" + 年 + 月 + "\"
test1() = Dir(FName + "*.csv", vbNormal)
test2 = Dir(FName + "*.csv", vbNormal)
test1()はデバック時にコンパイルエラー(配列には割り当てられません。)と出てしまいます。
test2はgenkaフォルダ内のcsvで名前の順で最初のファイル名が格納されているようです。
どのようにすれば巧く格納できるでしょうか?
ご教授よろしくお願いします。
0376デフォルトの名無しさん
NGNGヘルプでredimとdirの使い方をしっかり嫁
0377375
NGNGお騒がせしました。
0378デフォルトの名無しさん
NGNGFunction dRound(Expression As Double, NumDecimalPlaces As Integer) As Double
Dim s As Double
s = 10 ^ NumDecimalPlaces
dRound = Int((Expression + 0.5 / s) * s) / s
End Function
Sub test()
Range("A2").Value = 0.004: Range("B2").Value = Round(0.004, 2): Range("C2").Value = dRound(0.004, 2)
Range("A3").Value = 0.005: Range("B3").Value = Round(0.005, 2): Range("C3").Value = dRound(0.005, 2)
Range("A4").Value = 0.006: Range("B4").Value = Round(0.006, 2): Range("C4").Value = dRound(0.006, 2)
End Sub
0379デフォルトの名無しさん
NGNG処理したい内容がシート1上にあり、これを処理してシート2に結果を書いていく
というプログラムです。
処理したい内容が膨大なので(5万5千行ほどある)処理中に
今の処理中の行を表示したいのです。”現在”+A+”行を処理中です。” とか。
ただ、セル上には表示したくないので MSGBOXを使おう
と思ったんですが、これだと表示するたびにOKボタンを入力しないと
制御が次へ行きません。
MSGBOX で入力待ちにせず、ただ、表示だけする方法や
何か他にいい方法はないもんでしょうか?
0380デフォルトの名無しさん
NGNG>>307 を参考にするといいYO!!
0381デフォルトの名無しさん
NGNG>>380の意見もまぁ考慮の余地はあるんだけど、、、
これは?(ただし俺はこれを実行したことは無い。動くかどうかのテストはそっちでやってくれ)
様は処理中であることをユーザーに示しておきたいってことだよね。
マクロ処理中にメッセージボックスで処理中の表示をする
sub main
DoEvents '読込ダイアログ表示
他のサブルーチンの呼び出し
Unload UserForm1
endsub
Private Sub UserForm_Activate()'ユーザーフォーム本体
MAIN
End Sub
Sub SHOWFORM1()
'読み込み開始ダイアログを表示
UserForm1.Show'→ユザーフォームに”処理中”
End Sub
0383デフォルトの名無しさん
NGNGApplicationオブジェクトのStatusBarプロパティ
これを使ってみようと思います。
0384デフォルトの名無しさん
NGNGわしもそれがいいと思う。
0385374
NGNGCLng使ってきちんと四捨五入できるの作ったのですが
そちらの方が便利ですね
ありがとうございました。
0386デフォルトの名無しさん
NGNGftpは使えないとして・・。
0387デフォルトの名無しさん
NGNGExcel2000 です。
例)四角形を移動させたときに、他の四角形と重なったら警告する、等。
0388デフォルトの名無しさん
NGNGファイル名にURL指定じゃダメ?
0389386
NGNG0390デフォルトの名無しさん
NGNGWorkbooks.Open Filename:="http://kakaku.com/kakakudl/SPEC_winn.csv"
0391デフォルトの名無しさん
NGNGその csv ってまだあったんだ!?
価格.com のリニューアルの時にトップページにあった
「業者の皆様へ」とかいうリンクがなくなったから、
てっきりダウソできなくなったものだとばかり・・・。
vba とは関係ないがアリガ�d。
0392デフォルトの名無しさん
NGNG0393デフォルトの名無しさん
NGNGx月y日に対してzヶ月後の月末とは、(x+1+z)月1日の前日であるからして・・・。
0394デフォルトの名無しさん
NGNGすげぇ・・・最近の母親は小豆を知らんのか・・・。
0395名無しさん@お腹いっぱい。
NGNGどうすればいいのですか?
0396デフォルトの名無しさん
NGNGif
0397デフォルトの名無しさん
NGNGexit for
0398デフォルトの名無しさん
NGNGLoopを抜けないのであれば Goto ラベル
0399デフォルトの名無しさん
NGNG構造化に反しない程度に。
0400デフォルトの名無しさん
NGNG小数点以下が0の場合表示されません。
たとえば結果が500の場合セルで500.0000ではなくそのまま500と表示されます。
小数点以下の0を表示させる方法はありませんか?
0401デフォルトの名無しさん
NGNGセルの表示形式を0.00000にしちゃだめなの?
0402デフォルトの名無しさん
NGNG0403デフォルトの名無しさん
NGNGセルの表示正式の変更を自動マクロで記録すれば、VBAで
どうすればいいか分かる。
0404400
NGNGご返答どうもありがとうございます。
その方法を試してみたのですが
計算をし直すとき前回の結果は消し去るようにしたので
セルの表示形式の変更もなくなってしまっていたのです。
>>403
ありがとうございました。
自動マクロを使って何をやってるかわかり
ゼロの表示をプログラムからできるようになりました。
0405デフォルトの名無しさん
NGNG画像オブジェクト . 画像プロパティ =”ファイル名”
みたいな形を取るんだと思いますが、そのオブジェクトとプロパティの設定させるのがうまくいきません。
VBオブジェクトでImageを配置して、その中身を変えるというのなら出来るのですが、
裏の画像が透けて見えるような処理が出来ないのと、
クリックしたときに地の色が出るので今やろうとしてる作業に不向きなんで・・・
0406デフォルトの名無しさん
NGNGDim xvalues(10000) As Double
Dim yvalues(10000) As Double
・・・
それをグラフのX軸、Y軸として表示したいんだけど、
直接設定はできないみたいですね
.Value = yvalues
.XValues = xvalues
どうすればよいのですか
0407デフォルトの名無しさん
NGNGレポートで重複したデータを非表示にするVBAの構文ってしりませんかー
レポートで重複したデータを非表示にするプロパティいじってもうまく
いかないもんで・・
今日一日かけて色々やったけどさっぱできんかった・・・
お助けを・・・
0408デフォルトの名無しさん
NGNG標準機能で納得できないのなら、どういう機能がほしいのか詳細に書くべきだな。
なお標準機能の使い方については他をあたってください。
0409デフォルトの名無しさん
NGNG塗りつぶしてあるセルだけ、他のワークシートにコピーするような式ってありますか?
赤とかオレンジとか。
0410デフォルトの名無しさん
NGNGとりあえずこんな感じで。
Dim UsedCell As Range, CheckCell As Range
Set UsedCell = ActiveSheet.UsedRange
Application.ScreenUpdating = False
Sheets("Sheet2").Activate
For Each CheckCell In UsedCell
If CheckCell.Interior.ColorIndex <> xlNone Then
CheckCell.Copy
Range(CheckCell.Address).Select
ActiveSheet.Paste
End If
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
Set UsedCell = Nothing
てきとーに変えて使ってください。
0411407
NGNG失礼しやした。
非常に複雑な構成でして・・・
一言で言えば、レポートで重複したデータを非表示にするVBAっす。
具体的にいうと
テーブルAとテーブルBという二つのテーブルがあります。
テーブルAは「問題年度」「問題番号」「問題の中の選択肢」
というフィールドがあります。
たとえば「平成14年度、第5問、選択肢A」で上記三フィールドを使用します。
テーブルBには「問題年度」「問題番号」「問題全文」
というフィールドがあります。
「平成14年度、第5問、甲は〜をし、こうした。選択肢A、選択肢B(略)」
で上記3フィールドを使用します。
このテーブルAとテーブルBを「問題年度」「問題番号」で共通するものをリンクしております。
で、レポートとしては
「平成14年度」「第5問」「選択肢A」
「問題全文」
「選択肢A」
「平成14年度」「第5問」「選択肢A」
「選択肢B」
「平成14年度」「第5問」「選択肢A」
「選択肢C」
「平成14年度」「第6問」「選択肢A」
「問題全文」
「選択肢A」
というように表示したいのですが・・
レポート上で「問題全文」のテキストボックスの重複非表示の設定を「はい」にしても
「問題全文」が「選択肢A」〜「選択肢C」の上に毎回表示されてしまうんです。
そこで、これをVBAでなんとかできんものかと・・・
よろしくお願いします。
0412デフォルトの名無しさん
NGNG0413デフォルトの名無しさん
NGNGとりあえず、すっげーわかり辛い
0414デフォルトの名無しさん
NGNGそのレポート、さっぱりわからんので
俺としては
「平成14年度」「第5問」
「問題全文」
「選択肢A」
「選択肢B」
「選択肢C」
「平成14年度」「第6問」
「問題全文」
「選択肢A」
と表示してほしい。
0415409
NGNGありがとうございます!さっそくやってみます
お忙しいところすいませんでした。
0416デフォルトの名無しさん
NGNG0417デフォルトの名無しさん
NGNGTypeName(Selection) とか Selection.Name とか。
0418デフォルトの名無しさん
NGNGスゲー
0419●=3(゜д゜)いんふる ◆1xsES22i66
NGNG0420416
NGNGありがとうございます。
Selection.ShapeRange
で解決しました。
ハマってた原因は複数のオブジェクトが選択される可能性があるのに気づかなかったことでした。
0421デフォルトの名無しさん
NGNGExcel2000以降だとTrueじゃないと表示されないのは仕様でしょうか?
0422デフォルトの名無しさん
NGNGコンボボックスにDBから検索してきたものを二列表示させているのですが
コンボボックスを選択すると左側の列が表示されます。
二列目の項目を選択後にコンボボックスに表示させるにはどのようにすればよいのでしょうか?
ご教授よろしくお願いします。
0423デフォルトの名無しさん
NGNG※列番号は左端から0,1,2・・・なので2列目は1
0424デフォルトの名無しさん
NGNGスピンボタンで画像が次々とめくれるようにするにはどうしたらいいでしょうか?
例えば写真つきの社員名簿みたいのを想像してください。
ユーザーフォームにテキストボックスを配置してそこには文章を表示するように
出来たのですが、画像をどうしたらいいのか悩んでいます。
loadpicture関数を使って出来そうなのですが俺の技術では無理っぽいっす。
神様方、助けてやってください。
参考になるWebのリンクでも結構ですので貼り付けてください。
たのんます。
0425デフォルトの名無しさん
NGNGやってみたコードを提示してみてください。
0426424
NGNG0427デフォルトの名無しさん
NGNG"解決しました"じゃねぇだろ。どのように解決したか位書けよ。
0428デフォルトの名無しさん
NGNG知るか氏ね。
0429デフォルトの名無しさん
NGNG⊂ >>
/( 。A。 )っ←>>424=426=428
U ∨ ∨
・@;∴‥
∧_∧ ∩ :: :.
( ・∀・)/ :: ::
(つ / :: :'
人⌒l ノ :: ::
し(_)
0431デフォルトの名無しさん
NGNG0432デフォルトの名無しさん
NGNGMsgBox Chr$(&H22) & "ダブルクォーテーションを表示させたい !!" & Chr$(&H22)
0433デフォルトの名無しさん
NGNG""""
0434デフォルトの名無しさん
NGNGChr(34)
0435デフォルトの名無しさん
NGNG431さんのようにCONCATENATE関数や&で繋ぐ場合そのままだとうまく
いかないのでxlsファイル上で見えるようにするには、例えばほかのワークシート
に置いておいてそこから絶対参照を使って上記の関数などで繋げれば表示される
ようになりますが、それをcsvやtxtなどで保存すると"が"""になってしまっています。
しょうがないので現状では文字列は他の記号で保存をして後でエディタ等で置換
をしているのですがVBAなどで一気に処理できるようにはならないでしょうか?
VBAは初心者です・・
0436デフォルトの名無しさん
NGNGこれがなんで4つか今だ理解できない漏れ。他にいろんなパターン打ってみたけど
いったいどうやって判定してるのだか。
0437デフォルトの名無しさん
NGNG0438デフォルトの名無しさん
NGNGMsgBox """でエラー
MsgBox """"で「"」???
0439デフォルトの名無しさん
NGNGCで言うとこの原理だ。"\\" -> \
0440デフォルトの名無しさん
NGNG「仕様」です。
0441デフォルトの名無しさん
NGNGVBってそう言う言語だな。
思想や指向はなく、ただただ仕様と。
0442デフォルトの名無しさん
NGNGExcelの既存のメニューの動作を乗っ取りたいんですが、
方法があれば、教えてください。
Wordだと、[ツール]→[ユーザー設定]→[コマンド]タブの
「すべてのコマンド」の中にある項目と同じ名前のメソッドを
VBAで作るとオーバーライドできますが、
Excelで同じようなことはできますか?
0443デフォルトの名無しさん
NGNG0444名無しさん@そうだ選挙に行こう
NGNGシートが保護されている記録というシートに行と列を入れ替えて
貼り付けます。
貼り付ける場所はA列の一番したです。
なぜか実行時エラー1004 rangeクラスのpastespecialメソッドが失敗しました。
と出たり出なかったりします(交互に)。
分かる方いません?
明日の課題が。。。(汗)
Sub module1()
Sheets("計算").Select
Range("L1:L22").Select
Selection.Copy
Sheets("記録").Select
'ActiveSheet.Unprotect password:="unlock"
下端 = Range(Cells(3, 4), Cells(3, 4)).End(xlDown).Row + 1
範囲 = "A" & 下端
Range(範囲).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
ActiveSheet.Protect "unlock", DrawingObjects:=True, Contents:=True, Scenarios:=True
Sheets("計算").Select
ActiveWorkbook.Save '上書き保存
Application.DisplayAlerts = False 'メッセージを出さない
'ActiveWorkbook.Close '閉じる
End Sub
0445444
NGNG保護の解除を先頭にもってきたらOKになりました。
お騒がせしました。
Sub module1()
Sheets("記録").Select
ActiveSheet.Unprotect password:="unlock"
Sheets("計算").Select
Range("L1:L22").Select
Selection.Copy
Sheets("記録").Select
下端 = Range(Cells(3, 4), Cells(3, 4)).End(xlDown).Row + 1
範囲 = "A" & 下端
Range(範囲).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
ActiveSheet.Protect "unlock", DrawingObjects:=True, Contents:=True, Scenarios:=True
Sheets("計算").Select
ActiveWorkbook.Save '上書き保存
Application.DisplayAlerts = False 'メッセージを出さない
'ActiveWorkbook.Close '閉じる
End Sub
0446デフォルトの名無しさん
NGNG保護を解除しなくても、VBAで変更かけることができるぞ。
0447デフォルトの名無しさん
NGNG0448デフォルトの名無しさん
NGNGできます。
0449デフォルトの名無しさん
NGNG0450デフォルトの名無しさん
NGNG私も知りたいのでしばらく調べてたんですが、よくわかりません。
↓は参考になりませんか?
http://www.asahi-net.or.jp/~ef2o-inue/kankyo/sub02_02_02.html
0451デフォルトの名無しさん
NGNGちょっと方法が思いつかないので質問させてください
チェックボックスを一括してコレクションに突っ込みたいわけですが
With chkboxCollection
.Add item:=CheckBox1
.Add item:=CheckBox2
.Add item:=CheckBox3
.Add item:=CheckBox4
.Add item:=CheckBox5
.Add item:=CheckBox6
.Add item:=CheckBox7
End With
では効率が悪すぎます
かといって
For intCount = 1 To intChkcount
chkCollection.Add item:=OLEObjects("CheckBox" & intCount)
Next intCount
とするとチェックボックスではなく"checkbox1"という「文字列」が
突っ込まれてしまいます
良い方法はないでしょうか
0452デフォルトの名無しさん
NGNGWith chkboxCollection
For Each obj In Oleobjects
If left(obj.name,8)="CheckBox" Then .Add item:=obj
Next obj
End With
0453初心者
NGNGコントロールの書式設定の入力範囲
をプロシージャで変更(例:sheet2!$B$2:$B$3)するには
どうすればよいのでしょうか?
0454デフォルトの名無しさん
NGNG取りあえずマクロ記録。
0455デフォルトの名無しさん
NGNGVBAでワークシートをコントロールするプログラムを開発しているのですが、
ワークシート上に作成したピボットテーブルの行のグループ化のコントロールの所で
詰まってしまいました。
Range("A5").Select
Selection.Group Start:=True, End:=True, Periods:=Array(False, False, False, _
False, True, False, False)
で、グループ化そのものはできたのですが、その後、グループ化の状況を確認するために
グループの情報を得る方法がどうしてもわかりません。
どなたか、教えてください!
0456デフォルトの名無しさん
NGNGプロジェクトにパスワードを設定する方法だと、世の中には
パスワードを破るソフトがあるようなので、あまり信頼できません。
Excel VBA Lockっていうシェアウェアでプロジェクトの保護を
破られないようにすることが出来るそうですが、これはどれくらい安全
なんでしょうか?(100%破られることは無いと考えて良いのでしょうか?)
もし、そうならば、利用したいのですが。
0457デフォルトの名無しさん
NGNGデータの区切りを行いたいと思います。
データ1 データ2 "データ3" データ4
データ3となっている部分は、そのまま半角スペースを目印に
区切るとデータ3の途中で分割されてしまいます。
すでにテキストファイル上でも"と"の間という目印はありますが
どのように処理をすればうまくデータ区切りができるでしょうか。
ご教授をいただければ幸いです。
0458デフォルトの名無しさん
NGNG0459デフォルトの名無しさん
NGNG年月日時分秒 名前 "コメント" 生息地
20040723123030 名無しさん "もう だめぽ" 浜松市
のようになっているものを、
年月日時分秒,名前,"コメント",生息地
20040723123030,名無しさん,"もう だめぽ",浜松市
という区切りにしてExcelのシートに自動的に貼り付ける
仕掛けを作りたいのです。
"コメント"の文字数が変化するので、
何文字目で区切るという芸当は使えません(泣
0460デフォルトの名無しさん
NGNGスペースの次にダブルクォーテーションがある場合は、
ダブルクォーテーションの次にスペースがあるところまでを一つにすれば?
0461デフォルトの名無しさん
NGNG「ファイル」「開く」を使うのじゃなくて、
「データ」「外部データの取り込み」「テキストファイルのインポート」の方を使うとよい。
0462デフォルトの名無しさん
NGNGDestination:=Range("A1"))
.Name = "gomi"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlWindows
.TextFileStartRow = 2
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(2, 2, 2, 2)
.Refresh BackgroundQuery:=False
End With
0463デフォルトの名無しさん
NGNGVBAで作成したユーザー定義関数をEXCELワークシートのセルから呼出す際に、
通常のワークシート関数のように引数のバルーンヘルプのようなものを出すにはどうしたらよいのでしょうか?
どなたかわかる人がいたら教えてください。
0464デフォルトの名無しさん
NGNG中身
End Function
これで出ない?
0465デフォルトの名無しさん
NGNGExcelを印刷する時に特定のオブジェクトだけを印刷させない方法ってありますか?
0466465
NGNG普通にObjectのプロパティにありました
PrintObjectをFalseにすればいいだけでした^^;
お騒がせしました^^;;
0467デフォルトの名無しさん
NGNG0468デフォルトの名無しさん
NGNGホストのファイルごと渡す。
0469デフォルトの名無しさん
NGNG何をもって、スマートとするのか?
現在どのようの方法を用いていて、問題点は何か?
0470デフォルトの名無しさん
NGNGスマートメディアにコピーして配布するのがいちばんスマートだわな。
0471デフォルトの名無しさん
NGNG35歳以上
0472デフォルトの名無しさん
NGNG小さい方が好ましい。
0473467
NGNGあるExcel VBAマクロを作ったんです。で、それを他の人(十数人)にも使わせたいのです。
で、とりあえず、VBEditorでプロジェクトエクスプローラで、標準モジュールにして、
それをエキスポートし、その(*.bas)ファイルを渡したのです。
で、それを各自のExcelのVBEditorでpersonal.xlsにインポートしてもらいました。
しかし、この方法は手間が多いのでもうちょっとサクッと配布&インストールする方法が無いかなぁ、と思ったのです。
使う人達は素人同然なので...
ちなみに私は普通のVBは使ってますが、Excel VBAは初心者です。
0474デフォルトの名無しさん
NGNGマクロウイルス的手法でインストーラを作成するのは可能だと思いますが、現状の方法が一番素直だと考えます。
0475デフォルトの名無しさん
NGNGアドイン化すれば?
そうすれば、Application.AddIns.Add一発でインストールできるよ。
0476デフォルトの名無しさん
NGNG0477467=473
NGNG遅レスで申し訳ない...
>>474
なるほどです。
自分の方法におかしな点が無さそうなのは救いです。
>>475
アドイン化?
調べてないので良く分かりませんが、定番な手法なんでしょうか?
一応ググってみます...
0478
NGNGa = 61
For a = 61 To 1891 Step 60
Rows(a).Rows.Select
Application.Union(Rows(61), Rows(a)).Select
Next a
End Sub
61行から1891まで60行おきに全て選択したいんですが、うまくいきません。
選択されるのは最初の61行目だけです。アドバイスお願いします。
0479デフォルトの名無しさん
NGNGSub まとめて()
Dim RowNum As Long
Dim SelectRange As Range
For RowNum = 61 To 1891 Step 60
If SelectRange Is Nothing Then
Set SelectRange = Rows(RowNum)
Else
Set SelectRange = Union(SelectRange, Rows(RowNum))
End If
Next RowNum
SelectRange.Select
Set SelectRange = Nothing
End Sub
0481デフォルトの名無しさん
NGNGテンプレートフォルダにマクロの入ったファイルを置いておくだけで、マクロが呼べるようになるよ。
あと、ワークグループテンプレートを使えば、マクロを配布しなくても、
LAN上の共有フォルダにマクロを置いておけば呼べるようになる。
フォルダの設定は、「オプション」の「既定のフォルダ」を見ろ。
0482デフォルトの名無しさん
NGNGB列に「りんご」、「もも」、「なし」・・・
と入れていって
重複した名前・・・例えば「りんご」を再び入れたら
「もう入ってるよ!」とメッセージが出るようにしたい場合
どうすれば良いんでしょう?
0483デフォルトの名無しさん
NGNGシートモジュールに
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If WorksheetFunction.CountIf(Range("B1").Resize(.Row - 1), .Value) > 0 Then
MsgBox "もう入ってるよ!"
End If
End With
End Sub
をコピペ。
0484デフォルトの名無しさん
NGNG早速お返事感謝します
For Nextの方ではまってしまい
WorksheetFunctionを使うなんて想像もしてませんでした
本当に助かりました。有難うございます!
0485デフォルトの名無しさん
NGNGkeycode=0
というセンテンスですが
どういう意味なのか教えてくれませんか?
0486デフォルトの名無しさん
NGNGKeyCodeには、キーボードで押したキーの定数が入ってきます。
そのKeyCodeに0を代入すると、その押されたキーは無効になるということです。
例えば、テキストボックスのKeyDownイベントに
If KeyCode = vbKeyA Then KeyCode = 0
と書くと、アルファベットのAは入力出来なくなります。
0487485
NGNGありがとうございます。
0488デフォルトの名無しさん
NGNGA1:J8を固定(スクロールで動かない)ように
する方法ってありますでしょうか?
0489デフォルトの名無しさん
NGNG行番号を指定して選択するのは簡単ですが
現在のカーソルのある行を指定する方法がどうしてもわからず困っています。
0490デフォルトの名無しさん
NGNGRows(ActiveCell.Row).Select
0491デフォルトの名無しさん
NGNG助かりました。ありがとうございます。
0492デフォルトの名無しさん
NGNGパワーポイントでのVBAです、
やりたいことは、
1.特定のオブジェクトのプロパティをコピーして
2.選択した同種のオブジェクトに適用したい
です。
2の動作の前にプロパティ値の確認&書き換え可能なポップアップを出したいです。
よろしくお願いします。
対象とするオブジェクトのプロパティは吹き出しや曲線矢印のトグルなど、アプリケーション上のプロパティでは設定が出きないものです。
0493デフォルトの名無しさん
NGNGマルチ
0494デフォルトの名無しさん
NGNGShapeオブジェクトからたどれるところを全部見ろ。
LineプロパティのLineFormatオブジェクトのプロパティのところと、
CalloutプロパティのCalloutFormatオブジェクトのプロパティのところあたりが
役に立つかもしれん。
ダイアログの出し方とかの基本的なとこは、
PowerPointとは独立だから別途勉強しろ。
勘とセンスがあればかなりのことはVB editorのヘルプでなんとかなる。
0495デフォルトの名無しさん
NGNG\タブ\改行
\EOF
という
ファイルがあって
\改行
\EOF
のように\タブの部分を消したい場合どうすればいいのでしょうか?
2時間悩んでます・・・・
seek()メソッドを使えばよろしいのでしょうか?
お願いします。
0496デフォルトの名無しさん
NGNG0497495
NGNGエクセルファイルからセルをタブ区切りでCSVファイルに出力させる作業をやっています。
0498デフォルトの名無しさん
NGNG0499495
NGNG>>498
ありがとうございます
説明がなっていなくてで本当に申し訳ございません・・・
最後のタブだけを削除したかったのです。
ファイルの末尾から検索(ループ検索)してvbtabを削除することは可能なんでしょうか?
0500デフォルトの名無しさん
NGNG0501デフォルトの名無しさん
NGNGFTPでのアップロードがうまくいきません。
こんな感じのソースです。
Dim strPNAME As String 'パラメーターファイル名
Dim nFNO As Integer 'ファイル番号
strPNAME = ThisWorkbook.Path & "\ftptest.txt" 'ftpコマンドファイル作成
nFNO = FreeFile '空いてるファイル番号を取る
Open strPNAME For Output As #nFNO
'データ書き込み
Print #nFNO, "open xxx.xxx.xxx" ' ホスト名
Print #nFNO, "userID"
Print #nFNO, "password"
Print #nFNO, "cd public_html"
Print #nFNO, "put " & ThisWorkbook.Path & "\graph.gif"
Print #nFNO, "quit"
Close #nFNO
Shell "ftp -n -s:" & strPNAME
対処方法をご存知の方がいましたらお教えください。
0502デフォルトの名無しさん
NGNGいっそのことテキストファイル生成してcsv(形式)になるように手動で書き込んでく、とか。
0503デフォルトの名無しさん
NGNGtabclear() なんてあったっけ?
0504デフォルトの名無しさん
NGNG昔あったよ、透明のコーラ。おいしくなかったな
0505デフォルトの名無しさん
NGNG0506デフォルトの名無しさん
NGNG0507デフォルトの名無しさん
NGNGセルに色つけたいんですが、元データが16進数で、RGB関数は10進数なので変換しないと・・・
0508デフォルトの名無しさん
NGNG16進文字列の長さが0になるまで{
返値に16を掛ける。
16進文字列の前1文字を取り出す。
取り出した16進1文字を0〜15の10進に変換する。
返値に変換した10進を足す。
16進文字列の前1文字を削除する。
}
0509デフォルトの名無しさん
NGNGありがとうございます。
一発変換はできないのですねぇ・・・_| ̄|○
0510デフォルトの名無しさん
NGNGすまんかった、削除いらいだしてくる。
0511デフォルトの名無しさん
NGNGColorプロパティに16進数をつっこむ。
Range("A1").Interior.Color = &HFFF
0512デフォルトの名無しさん
NGNGどうもです
&Hですか。0xでやってました。出直してきます...λ
0513デフォルトの名無しさん
NGNGドンマイ!がんがれ!
0514デフォルトの名無しさん
NGNGVBAでも使いたいにゃら、"分析ツール - VBA"アドインも組み込んであげて下さい。
0515デフォルトの名無しさん
NGNGB列には順次データが追加される。
常に最新のデータを含んだグラフに更新するにはどうすれば良いのでしょうか?
これだと、エラーになってしまいます。
Sub graph4()
Sheets("graph(1988〜)").Select
ActiveChart.SetSourceData Source:=Sheets("data").Range("A6", Range("B6").End(xlDown)), PlotBy:= _ xlColumns
End Sub
0516デフォルトの名無しさん
NGNG以下のような感じでうまくいきました。試してみてください。
Sub graph4()
Sheets("graph(1988〜)").Select
ActiveChart.SetSourceData Source:=Sheets("data").Range("A1:B" & Split(Sheets("data").Range("A1").End(xlDown).Address, "$")(2)),PlotBy:=xlColumns
End Sub
0517デフォルトの名無しさん
NGNGVBだと、オブジェクトのプロパティで簡単にできますよね。
現在は、名前を表示するには、以下のようなマクロを実行。
Sub ActiveShapeName()
Debug.Print Selection.ShapeRange.Name
End Sub
名前を変えるには、イミディエイトウィンドウで
selection.shaperange.name = "新しい名前"
のようにしているのですが、かなり面倒です。
良い方法はありませんでしょうか?
0518デフォルトの名無しさん
NGNGフォームの最大化(サイズ変更)を自由にさせたいのですが…
0519デフォルトの名無しさん
NGNGPrivate Const GWL_STYLE = (-16)
Private Const WS_MAXIMIZEBOX = &H10000
Private Const WS_MINIMIZEBOX = &H20000
Private Const WS_THICKFRAME = &H40000
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Sub UserForm_Initialize()
Dim lngWnd As Long
lngWnd = FindWindow("ThunderDFrame", Me.Caption)
SetWindowLong lngWnd, GWL_STYLE, GetWindowLong(lngWnd, GWL_STYLE) Or WS_MAXIMIZEBOX Or WS_MINIMIZEBOX Or WS_THICKFRAME
End Sub
0521デフォルトの名無しさん
NGNG何かの処理その1
printf("AAAAA");←1番目は最初からある
printf("BBBBB");←2番目はここに追加
printf("CCCCC");←3番目はここに追加
printf("DDDDD");←4番目はここに追加
何かの処理その2
}
ユーザが任意で二番目以降n番目までのprintf〜を追加し、エクセルのシート
に出力するVBAを作るにはどうすればいいのですか?
0522デフォルトの名無しさん
NGNGどうすれば直りますか?
0523デフォルトの名無しさん
NGNG0524デフォルトの名無しさん
NGNGどのように並べ替えたいのですか?
0525デフォルトの名無しさん
NGNGよろしくお願いしますm(__)m。
0527デフォルトの名無しさん
NGNGworkという名前のシートを作成してから実行してください。
Sub test()
Dim i As Long
Sheets("work").Activate
Columns("A:A").Select
Selection.ClearContents
Range("A1").Select
For i = 1 To Sheets.Count
Cells(i, 1).Value = Sheets(i).Name
Next
Range("A1:A" & Sheets.Count).Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin
Range("A1").Select
For i = 1 To Sheets.Count
Sheets("work").Activate
Sheets(Cells(i, 1).Value).Move after:=Sheets(i)
Next
End Sub
0528523
NGNGお礼がおそくなり、すいませんでした。やってみたらばっちりです。感謝m(__)m。
これってsheet名 workにブック内のシート名を書き出して、ソートし、その結果を
元に並べ替えているんですよね?
なにはともあれ、有難うございました。
0529デフォルトの名無しさん
NGNGユーザーフォームのコマンドボタンから他のexcelシートを呼び出しています。
ユーザーフォームをhideにしないとそのexcelシートが触れないのですが、
hideにしてしまうと呼び出したexcelシートからユーザーフォームへ復帰ができません。
呼び出したシートにはなるべくコードを書きたくないので、
下の様なコードを呼び出し側のシートに書いたのですが、
Activateイベント自体を拾えないようです。
2つ目のexcelを閉じる→一つのexcelがactiveとはならないのでしょうか?
xxフォーム
Cmd_Click
me.hide
Workbooks.Open Filename:=CurrentPass & "\" & fname
xxフォームのあるexcelシート
Private Sub Worksheet_Activate()
xx.Show
0530デフォルトの名無しさん
NGNGUserForm1.Show vbModelessではだめですか?
0531529
NGNGありがとうございます。
やってみたがだめでした。
(xxフォームを開くときにvbModelessでいいんですよね?)
フォームがシートの上にあってシートクリックしても前面に出ないのです。
よけて入力するにはフォームが大きすぎて・・・
zorderみたいなものがあればいいのですが。
0532デフォルトの名無しさん
NGNG変数って使えますか?
0533デフォルトの名無しさん
NGNGすが、解除するソフトってありますか?
フリーで結構出回っているということなのですが・・・
0534デフォルトの名無しさん
NGNG0535句読点書けないバカをサマージャンボする俺 ◆9NQzQ21lx.
NGNG0536デフォルトの名無しさん
NGNG0537句読点書けないバカをサマージャンボする俺 ◆9NQzQ21lx.
NGNG9/11
0538デフォルトの名無しさん
NGNG先頭から何番目なのかわかる方法ないでしょうか?
0539デフォルトの名無しさん
NGNGActiveSheet.Index
0540デフォルトの名無しさん
NGNGA1のセルの内容が”22,23”のようにカンマを使って区切られている場合はそれを
B2に”22”B3に”23”と分けて出力し、セルの内容が”123”というようにカンマを使われてない
場合はB2に”123”と出力するようにしたい場合はどうすればよいでしょうか?
またさらに”port 22,23”というようなセルがあった場合それをB2とB3に”port 22” ”port 23”
という風に分けて出力する方法はあるのでしょうか?
いずれの場合も区切られている記号はカンマのみで他の記号の場合は分割する必要はありません。
まだ始めたばかりなせいかIfとFindを使うんだなぁくらいしか思い浮かばず
何をどうすればいいか見当もつきません。どなたか宜しくお願いします。
0541540
NGNG前レスでsplit関数なるものを見つけまして、最初の数字だけのセルだったら
Sub test()
Dim A() As String
A = Split(Cells(1, 1).Value, ",", 2)
Cells(1, 2).Value = A(0)
Cells(1, 3).Value = A(1)
End Sub
で何とかなることがわかりました。
ただ二つめの文字列と数字の混合してあるようなセルの場合に対処することが出来ません。
どうか宜しくお願いします。
0542デフォルトの名無しさん
NGNGA列の処理したいところを選択してから下のマクロを
実行してみてください。
Sub Test()
Dim CheckCell As Range
Dim TextHead As String
Dim TempText As Variant
Dim TextSource As String
Dim i As Long
For Each CheckCell In Selection
TextHead = ""
TextSource = CheckCell.Value
If InStr(1, TextSource, " ") > 0 Then
TempText = Split(TextSource)
TextHead = TempText(0) & " "
TextSource = TempText(1)
End If
If InStr(1, TextSource, ",") > 0 Then
TempText = Split(TextSource, ",")
For i = 0 To UBound(TempText)
CheckCell.Offset(0, i + 1).Value = TextHead & TempText(i)
Next i
Else
CheckCell.Offset(0, 1).Value = TextHead & TextSource
End If
Next CheckCell
End Sub
0543542
NGNGそれぞれ以下のように書き換えてください。
CheckCell.Offset(0, i + 1).Value = TextHead & TempText(i)
→CheckCell.Offset( i + 1,1).Value = TextHead & TempText(i)
CheckCell.Offset(0, 1).Value = TextHead & TextSource
→CheckCell.Offset(1, 1).Value = TextHead & TextSource
0544540
NGNGまだどんな処理しているか分からないですけどとりあえずコピペして試してみたら
やりたいことが出来ました!
しかも理解しやすい変数を使って頂きありがとうございます。これからどのように動いているか
調べます。本当に助かりました。
どうもありがとうございました。
0545デフォルトの名無しさん
NGNG別々の人がAccessを使って作った顧客管理ソフト?が2つ(A・B)
あります。
外部から電話がかかってくると常駐してあるAに切り替わります。
画面上には電話番号・顧客登録で登録した氏名・会社名等を表示す
る横長のフォームがあり、そこに上記の情報が表示されます。
そこには「表示」ボタンがありそれを押すと「顧客管理フォーム」
が表示され、電話をかけて来た顧客の情報画面が表示されます。
しかしAの顧客情報画面よりBのソフト方のが登録できる顧客情報
が多いので、Bの方の顧客情報画面を表示させたいのです。
ちなみにBで顧客情報画面を出すには、Bを起動後メインメニュー
から電話番号検索を選びそこに電話番号を入力し検索すると検索結
果が表示されその画面上にある顧客情報ボタンを押すと顧客情報画
面が画面が表示されます。
ここで行いたい処理の流れを整理すると
電話がかかってくる→Aが起動する→フォームに電話番号などの
情報が表示される→画面上のボタンを押す→Bが起動→Aで表示
されている電話番号を元に検索→「顧客情報画面」を表示
ということなのですが、このようなことはVBAでは可能なのでし
ょうか?可能ならばどの様なプログラムになるのでしょうか?
多分説明(情報)不足ではありますが宜しくお願いします。
0546デフォルトの名無しさん
NGNG同僚がこんな仕様書書いてきたら怒鳴りつける。
0547デフォルトの名無しさん
NGNGできる
要するに、別のファイルを開いて変数を渡すってだけでしょ・・・
塚、そのカキコの様子ではVBAの知識ゼロだべ
イチから説明せにゃならんのか?
0548デフォルトの名無しさん
NGNGその顧客管理ソフトを作った人たちに相談したら?
0549デフォルトの名無しさん
NGNG~~~~~~~~~~~~~~~~~~
.value = ...
ActiveChart.SetSourceData Source:=range("A1:E10") ...
~~~~~~~~~~~~~~~~~~
end with
この2ヶ所が重複してしまうのですが、良い指定方法はありますでしょうか
(C++のthisの様な物を探しているのですが…)
0550デフォルトの名無しさん
NGNG0552デフォルトの名無しさん
NGNG一時変数とか言わんでクレ。なんか構造化すらできない言語のように聞こえる・・・。、
0553デフォルトの名無しさん
NGNGローカル変数とでも読んどいてくれ…
0554デフォルトの名無しさん
NGNGdN/dt=r*N-a*N*P
dP/dt=-s*P+b*N*P (r,s,a,bはいずれも定数)
を、修正オイラー法で近似して、グラフ(横軸:時間t、縦軸:個体数)をシミュレーション、
個体数が2つの波となって周期的に振動する様子を確認せよとの課題が出た。
被捕食者の数は、
N(t)'=N(t-1)+{r*N(t-1)-a*N(t-1)*P(t-1)} 「仮の値」
N(t)=N(t-1)+[ {r*N(t-1)-a*N(t-1)*P(t-1)}+{r*N(t)'-a*N(t)'*P(t)'} ]/2 「修正した値」
捕食者の数は、
P(t)'=P(t-1)+{s*N(t-1)*P(t-1)-b*P(t-1)} 「仮の値」
P(t)=P(t-1)+[ {s*N(t-1)*P(t-1)-b*P(t-1)}+{s*N(t)'*P(t)'-b*P(t)'} ]/2 「修正した値」
だそうだが、y=at+b だの、y=exp(-r*t) だのみたいにもう変数tの式になってるような関数しか今まで
見てないのに、「N(t)=N(t-1)+・・・」とか、関数が関数で表現されてる時点で自分にはもうワケワカメ。
結局NやPを表す式がどうなるのか皆目検討もつきやせん。
「ロトカ・ボルテラ」や「VBA]なんかの単語をを必死で組み合わせてググッてしらみつぶしに見ていったけど
徒労に終わっちゃい、もはやここしか当てのなくなった初心者学生ですが、誰か救いの手を〜
0555554
NGNGこれだけすでに「おまえ本当に知識0だろ」と指摘されそうな悪寒。
Dim N As Double, P As Double, a As Double, b As Double, t As double,
Dim N0 As Double, P0 As Double
Dim n As Integer
r = InputBox("被捕食者増加率")
s = InputBox("捕食者死亡率")
a = InputBox("被捕食者死亡率")
b = InputBox("捕食者増加率")
N0 = ??
P0 = ?
t = 0
With Worksheets("Sheet1")
.Cells(5, 5) = "r"
.Cells(5, 6) = r
.Cells(6, 5) = "s"
.Cells(6, 6) = s
.Cells(7, 5) = "a"
.Cells(7, 6) = a
.Cells(8, 5) = "b"
.Cells(8, 6) = b
For t = 1 To 100
n = n + 1
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
.Cells(n, 1) = N
.Cells(n, 2) = P
Next t
End With
End Sub
0556デフォルトの名無しさん
NGNGカレントディレクトリで開くにはどうすればいいですか?
0557デフォルトの名無しさん
NGNG漸化式を知らないということは中学生位かな?
まず
P(t)'=P(t-1)+{b*N(t-1)*P(t-1)-s*P(t-1)}
という所から直してね。
0558デフォルトの名無しさん
NGNG任意の場所で開く場合
ChDir "C:\"
Call Application.GetOpenFilename
0559デフォルトの名無しさん
NGNG>「ロトカ・ボルテラ」や「VBA]なんかの単語を
その前に、オイラー法を勉強すること。
修正オイラー法の前に、前進のオイラー法ね。
y'=yとかy'=cos(y)とか解いてみて、振動問題でまずいことになってから修正オイラー法を試す。
0560デフォルトの名無しさん
NGNGする方法を教えてください。
半角英数のみしか入力できないセルを作成したいです。
0561デフォルトの名無しさん
NGNG全シートを一括でAutoFit死体のですが、以下のコードでは
Sheets.Selectする前にアクティブだったシートしかAutoFitされません。
ー ソース −
Sheets.Select
Cells.EntireColumn.AutoFit
Cells.EntireRow.AutoFit
教えてえっちぃ人。
0562デフォルトの名無しさん
NGNGシートの保護じゃダメなんですか?
0563デフォルトの名無しさん
NGNGこうかな。
Dim WS As Worksheet
For Each WS In Worksheets
WS.Cells.EntireColumn.AutoFit
WS.Cells.EntireRow.AutoFit
Next
0564561
NGNGなる程。ワークシートの子要素の数だけループするのですか。
しかもシートをselectする必要無しですね。
( ・∀・)ウマクイッタヨ ステキダヨ カシコイヨ ヌルポ
でもなんで漏れのコードどで思い通りの動きにならなかったのか謎。
0565デフォルトの名無しさん
NGNGCells.EntireColumn.AutoFit
シートオブジェクトを省略すると、アクティブシートが
対象になると思うんだけど。
0566デフォルトの名無しさん
NGNGExcel起動時にフォームを表示させているのですが
そのフォームが表示されていると、
他の動作がすべてロックされていますが
これはなぜなんですか?
例えば
セルの選択や、ワークシートの切り替えも出来なくなっています。
ツールバーも使用できなくなってます。
フォームを閉じると普通に戻るのですが・・・
何か設定することでもあるのですか?
0567デフォルトの名無しさん
NGNGデフォルトでモーダル表示だから。
モードレスにするなら
UserForm1.Show vbModeless
とする。ただし、97では不可。
0568デフォルトの名無しさん
NGNG>VBA歴1日の超初心者ですが、ヤフーへの自動ログインマクロを
>作って居たところ、input name=".save" となっていて、
>"objIE.document.all..save.Click"と、
>記述すると文法違反になってしまいます。
>
>良い知恵はございませんでしょうか?
もし解決されていたら方法を投稿して頂けませんか?
同じ問題で3日悩んでます(泣
0569デフォルトの名無しさん
NGNGテーブルの項目名を取得するにはどうすれば
よいのでしょうか?
結構いろんなサイトを探したのですが載っていません
どなたか教えたください。よろしくお願いします。
0570デフォルトの名無しさん
NGNGDim fld As Field
Set rs = CurrentDb.OpenRecordset("テーブル1")
For Each fld In rs.Fields
MsgBox fld.Name
Next
・
・
・
0572540
NGNG”管理”というワークシートのB列に物品の管理番号、C列に物品番号。
”検索”というワークシートのB列に管理番号を知りたい物品番号。
が入力されてます。
検索シートでマクロを実行させると検索シートのB列の右側に管理番号が表示されるよう
ことが目的です
それで以下のようなコードを記述しました。
Sub 検索()
Dim objRange As Range
Dim l As Long
Dim m As Long
Dim n As Long
Dim i As Long
Dim j As Long
l = 5
m = 3
i = 4
j = 2
n = Cells(Worksheets("管理").Rows.Count, 1).End(xlUp).Row
0573572の続きです
NGNGnext0:
Do Until y = z + 1
If Worksheets("管理").Cells(l, m) = Worksheets("検索").Cells(i, j) Then
Worksheets("検索").Cells(i, j + 1) = Worksheets("管理").Cells(l, m - 1)
GoTo next1
Else
m = m + 1
End If
Loop
next1:
If Cells(i + 1, j) = Empty Then
GoTo finale
Else
i = i + 1
GoTo next0
End If
finale:
MsgBox "検索が終了しました。"
End Sub
0574572の続きです
NGNGIf Worksheets("管理").Cells(l, m) = Worksheets("検索").Cells(i, j) Then
の箇所で、実行時エラー 1004
アプリケーション定義またはオブジェクト定義のエラーです。
と言われてしまいました。
ちょっと自分ではどこがいけないのか分からないのでどなたか悪いところを教えて頂けないでしょうか?
宜しくお願いします。
0575ゆう
NGNGショートステイという業務があり非常に多忙です。
そこでエクセルのVBAを使用してなんとか業務を改善したいのですが、
どなたかボランティアでプログラムを作成してくださる方はおりませんか?
私もVBAはほんの少しならわかるのですが、業務が複雑でプログラムが
かけません。
0576デフォルトの名無しさん
NGNGありませんか?
0577デフォルトの名無しさん
NGNG0578デフォルトの名無しさん
NGNGn = Cells(Worksheets("管理").Rows.Count, 1).End(xlUp).Row
↑このnは使わないの?
>>573
Do Until y = z + 1 ←このyとzは何ですか?
0579デフォルトの名無しさん
NGNGm = m + 1
と計算して、列をどんどん右に調べていくことになってシートからはみ出てエラーだな
DGETやVLOOKUP使えばすむのに・・・
0580578
NGNG以下のように変えればとりあえず動きますね。
※の行が変更点です。
Sub 検索()
Dim objRange As Range
Dim l As Long, m As Long, n As Long, i As Long, j As Long
l = 5: m = 3: i = 4: j = 2
n = Worksheets("管理").Cells(Worksheets("管理").Rows.Count, 3).End(xlUp).Row '※
next0:
Do Until l = n + 1 '※
If Worksheets("管理").Cells(l, m) = Worksheets("検索").Cells(i, j) Then
Worksheets("検索").Cells(i, j + 1) = Worksheets("管理").Cells(l, m - 1)
GoTo next1
Else
l = l + 1 '※
End If
Loop
next1:
If Cells(i + 1, j) = Empty Then
GoTo finale
Else
i = i + 1
l = 5 '※(追加)
GoTo next0
End If
finale:
MsgBox "検索が終了しました。"
End Sub
0581572
NGNG数学のX軸とY軸と混同してしまってワケ分からなくなったので・・・
>>579さん、ほんとだw 二日酔いで頭が混乱してる・・・
とりあえず>>580に示されたとおりに動かしてみたら動きました。
とんでもないアホに付き合わせてしまってどうもすいませんでした。
0582デフォルトの名無しさん
NGNGOutlook2003の自作のマクロを実行させようとしたら、
今までは実行できていたのですが、
いつのまにか(ひょっとしたらSP2を入れてから?)
「このプロジェクトのマクロは無効に設定されています。
マクロを有効にする方法についてはオンライン ヘルプまたは
ホストアプリケーションのドキュメントを参照してください。」
と言われてマクロが実行できなくなってしまいました。
しかし、ヘルプをさんざんみたものの、その方法が見あたらず。。。
なお、セキュリティを「低」にしてみても、同様です。
上記の解決方法をご存じのかた、教えていただければ幸いです。
0583デフォルトの名無しさん
NGNG私も一部動かなくなりました。
0584デフォルトの名無しさん
NGNGヤフーオークションのログイン画面でしたら、以下のような感じでログインボタンがクリックできると思います。
Set objForms = WebBrowser1.Document.Forms("login_form")
For Each x In objForms
If x.Value = "ログイン" Then
x.Click
End If
Next
0585デフォルトの名無しさん
NGNGobjIE.document.all(".save").Clickではだめですか。
ない!
0587デフォルトの名無しさん
NGNGどのようにすればいいのでしょうか?
WORDからADO使ってAccessのデータベースに接続することはできたけど、
Accessのモジュールを呼び出せると、使い道が増えそうなので…
0588デフォルトの名無しさん
NGNG0589587
NGNG多分こんな感じになるはずなんだけど、動きません。うーん…
Sub acModule()
Dim Yougo, Imi As String
Dim acDB As Object
Set acDB = CreateObject("Access.Application")
Yougo = InputBox("用語を入力", , "コンピュータ")
Imi = acDB.Run("用語集.mdb!Yougo", Yougo)
MsgBox (Yougo & " : " & Imi)
End Sub
用語集.mdbのModule1にYougoというFunctionを作っています。
0590デフォルトの名無しさん
NGNGSet acDB = CreateObject("Access.Application")
acDB.OpenCurrentDatabase ActiveWorkbook."絶対パス" ’"C:\My Documents\用語集.mdb"とか
acDB.Visible = True
acDB.UserControl = True
0591デフォルトの名無しさん
NGNGSet acDB = CreateObject("Access.Application")
acDB.OpenCurrentDatabase "絶対パス" ’"C:\My Documents\用語集.mdb"とか
acDB.Visible = True
acDB.UserControl = True
0593デフォルトの名無しさん
NGNG皆様のお知恵を拝借したくカキコしております。
現在悩んでいること
現在、VB.NETからOutLook2000をCreateObjectして、
MailItemを操作するプログラムを開発しております。
外部プログラムからOutLookを操作する際に、
セキュリティの警告ダイアログが出てしまい、
運用に耐える代物ではなくなってしまっております。
質問
・外部プログラムからOutLookを操作してセキュリティの警告ダイアログを出さない方法は有るか?
・外部プログラムからOutLookを操作してセキュリティの警告ダイアログが表示された時、
自動的に閉じさせる方法は有るか?
・実現可能な場合、その方法は。
色々調べたのですが答えが出ませんでした。
なお、メール操作にはOutLookを利用することが要件として含まれているため、
他の方法でメール操作の要件を満たすことが出来ません。
一応、以下に調べた結果を列挙します。
主なWeb上の取り扱い
結果1、Officeの仕様だ諦めろ
結果2、ウイルスの中にはセキュリティの警告を出さずに操作するものもあるらしい。
結果3、恥ずかしくなる位簡単な方法で回避できた(OutLook2002)
(どうやって回避したとかは載ってませんでした)
※信頼に耐えうるソース
0594593
NGNG一番最後の行
※信頼に耐えうるソース → ※信頼に耐えうるソースは結果1のみです。
質問した上に誤植までしてしまい、申し訳有りませんでした。
0595デフォルトの名無しさん
NGNG0596デフォルトの名無しさん
NGNG0597593
NGNGレス有難うございます。
やはりアップデートを外すしか無いのかも知れませんね。
しかし、OutLookの性格上アップデートを外すのはセキュリティ上不安が残るのも事実です。
考えていた対処
・オフィスのバージョン2000=>97に落とすか、2000のアップデートを外す。
・現実的な対処としてOutLookにアクセスする回数を減らしてユーザーに我慢してもらう。
なんとなく踏ん切りが付きましたので、後者をメインに考えてユーザーと相談してみます。
アドバイス頂きまして、誠に有難うございました。
0598デフォルトの名無しさん
NGNG0599質問です
NGNGコンボボックスに
中1
中2
中3
高1
高2
高3
のような項目を作成しました。
このときコンボボックスの値に上記の値の中から
任意のものを初期値としてフォームに入力しておく
ことはできるのでしょうか?
0600デフォルトの名無しさん
NGNGできます。
0601質問です
NGNGもしお時間があるようならばその方法を教えていただけないでしょうか?
0602デフォルトの名無しさん
NGNG無いので嫌です。
0603デフォルトの名無しさん
NGNGで、まずお使いのアプリを教えれ。
話はそれからだ。
塚、ググればいくらでもHitすると思いますよ。
0604質問です
NGNG>>600様、返信ありがとうございます
現状を全く書いていなかったのが悪かったのですね。。
以後気をつけます。
使っているアプリはエクセル2002です。
Visual Basic Editer を使用してマクロを組んでいます。
「エクセル マクロ コンボボックス 初期化」
などでググっては見たのですが、3時間探しても見つからないので
こちらに質問させていただきました。
開発途中の画像は↓↓↓です。
ttp://www1.ocn.ne.jp/~nasitaka/situmon.JPG
画面右側のコンボボックスに初期値を入力させるというものを最終的には作ります。
是非アドバイスよろしくお願いします
0605600
NGNG>>599で中2を既定で設定するには
コンボボックス名.ListIndex = 1
でできるようです。
未選択にする場合は-1、リストの1番目は0です。
0606質問です
NGNGまたわからないことがありましたら書き込みさせていただきます
0607デフォルトの名無しさん
NGNG折れ線グラフの雛形を作っておき、それに対して毎回不規則に個数の変わるデータを
元データにする(わかりやすく言えば元データを変える)マクロを作ろうとしています。
試しにマクロの記録で見てみたのですが、
ActiveChart.SeriesCollection(1).Values = "=Sheet1!R1C1:R25C1"
↑こんな感じでした。
データの個数が常に一定であれば R1C1:R25C1 をR1C2:R25C2 のような感じにすればよいのですが、
データの個数が一定ではないところが悩みのネタです。
このR1C1:R25C1を開始行と終了行の変数にして、INPUTBOXか、セルに入力して読ませる感じで
やれば良いんじゃないかなと思っているのですが、なかなかうまくいきません。
ちなみに、X軸、Y軸ともに同じ個数で毎回変動します。
(つまり、X軸とY軸のデータの個数は等しくなります)
A:Aが使えればよいのですが、上記のメソッドでは使えないようです。
google等で調べてみたのですが、解決に至りませんでした。
どなたかご指導下されば幸いです。
0608デフォルトの名無しさん
NGNGマルチポストした時点で誰も答えるわけ無いのに。
0609607
NGNG0610デフォルトの名無しさん
NGNGSheet1.Range("A1:A25")
0611デフォルトの名無しさん
NGNG早いレスもらえるかと思った次第です。
0612607
NGNGいえ、たまたま例をだしただけで、実際はA1:A150だったり、A1:A2000だったり、
毎回変わるのです。
それをInputboxとかセルから変数に読み込んで元データを指定する感じにしたいのです。
inputBOXとかセルから読ませるのはわかります。が、
ActiveChart.SeriesCollection(1).Values = "=Sheet1!R1C1:R25C1"(←あくまで例です)
の、R1C1:R25C1の部分を変数にしてマクロを組みたいのです。
質問する分際で説明不足で申し訳ありませんでした。
0613デフォルトの名無しさん
NGNGActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A1:A25"), PlotBy _
:=xlColumns
ってなる・・・。バージョンの違いなんかな。
こんなん?
Sub makechart()
Dim line As Integer
line = 1
While (Cells(line, 1) <> "")
line = line + 1
Wend
If (line = 1) Then Exit Sub
Range("A1:A" & CStr(line - 1)).Select
Charts.Add
あとは適当
0616デフォルトの名無しさん
NGNGナイスマクロウイルス!
0617607
NGNGなんかそれらしい気もしますが。あした職場のPCで開いてほんとに菌なら処分されます・・・
や、でもなんかそれらしいのでとりあえず持っていって、スタンドアローンで開いてみます。
ドキドキ。
0619607
NGNG>>617で書いた「それらしい」っていうのは、私の質問で対する回答っぽいという意味であり、
菌らしいという意味ではありません。気を害したら申し訳ないです。では明日試します。
0620デフォルトの名無しさん
NGNGいい加減黙れ。
0621デフォルトの名無しさん
NGNG0622デフォルトの名無しさん
NGNGではいかんのかいのぅ?
0623デフォルトの名無しさん
NGNG0624デフォルトの名無しさん
NGNG「5行6桁」などと指定してカーソル位置を移動させる方法ありますか?
ちょうど、 EXCELで、 Range("A1").Select とやるようなことを
やりたいわけなんですが。
0625デフォルトの名無しさん
NGNG取得する方法ってありますか?
Fields(i).Code.Textで取得してregexで処理するしかないでしょうか?
0626デフォルトの名無しさん
NGNGコンボボックスに追加しようと思ったけどソート用関数とか無いの?
0627デフォルトの名無しさん
NGNG口の利き方に気をつけろヴォケ!!
>それを重複除去、ソートで整形して
↑この時点でアフォ丸出しだw
>>624-625
Wordはよく判りませぬ・・
0628デフォルトの名無しさん
NGNGunix知らないんだろうなぁ・・・。
ソートしてから重複除去だろ?
0630デフォルトの名無しさん
NGNGexcel vbaでセルの高さや幅を変更したら発生する
イベントってないですか?
0631デフォルトの名無しさん
NGNG▼をクリックして、リストを開いた状態で、マウスのホイールを
スクロールさせるとシートのスクロールが発生し、リストのみ画面下部に
移動してしまいます。
できれば、リスト内でスクロールを発生させたいのですが、方法はないでしょうか。
0632デフォルトの名無しさん
NGNG0633デフォルトの名無しさん
NGNGメモリ増やしたら早くなったりしますか?
処理中すごい音してるしちょっと怖いです
0634デフォルトの名無しさん
NGNGマクロの内容による
0635デフォルトの名無しさん
NGNG>処理中すごい音してるしちょっと怖いです
スワップしてるんなら有効。単に外部ファイル読みまくりなら買って西根。
0636デフォルトの名無しさん
NGNGexcelのマクロとかだったら処理中の描画をOFFにするだけでかなり速くなる
0637デフォルトの名無しさん
NGNGロジック見直せば速くなる
0638デフォルトの名無しさん
NGNG当然ながらハンド最適化済みです。
0639デフォルトの名無しさん
NGNGソースくらい出せ
0640633
NGNGスワップ、調べましたが私にはどうすればいいのか分かりませんでした。
>>636
最後に
application .screenupdating = false
と書いたんですが何も変わりませんでした。
>>637
638は私ではありません
>>639
次に書きます
0641633
NGNGDim mysheet As Variant
Dim b As Integer
Dim c As Integer
Dim code As Integer, q As String, u As String, rownum As Integer
Dim myrange1 As Range, myrange2 As Range
Dim move As Integer
Set mysheet = Sheets(Array("×", "×2", "×3", "×4", "×5", "×6", "×7", "×", _
"×9", "×10"))
For Each mysheet In Array("×1", "×2", "×3", "×4", "×5", "×6", "×7", "×8", _
"×9", "×10")
Worksheets(mysheet).Select
For b = 61 To 1891 Step 60
Rows(b).Delete
Next b
For c = 2 To 1831 Step 61
Rows(c).Insert , xlShiftUp
Next c
0642633
NGNGcode = Cells(rownum + 1, 1).Value
If code > 0 Then
Worksheets("○○").Select
Set myrange1 = Range("A:A").Find(what:=code, searchorder:=xlByColumns)
q = myrange1.Address
If Not myrange1 Is Nothing Then
Set myrange2 = Range(q).End(xlToRight)
u = myrange2.Address
Range(q, u).Copy Destination:=Worksheets(mysheet).Rows(rownum)
End If
Worksheets(mysheet).Select
0643633
NGNGRange(Cells(rownum + 55, 16), Cells(rownum + 59, 16)).FormulaR1C1 = "=AVERAGE(RC[-8]:R[4]C[-8])"
Range(Cells(rownum + 50, 18), Cells(rownum + 59, 18)).FormulaR1C1 = "=AVERAGE(RC[-10]:R[9]C[-10])"
Cells(rownum, 20).FormulaR1C1 = "=AVERAGE(RC[-10]:R[2]C[-10])"
Cells(rownum, 22).FormulaR1C1 = "=AVERAGE(RC[-12]:R[4]C[-12])"
Cells(rownum, 24).FormulaR1C1 = "=AVERAGE(RC[-14]:R[9]C[-14])"
Range(Cells(rownum, 14), Cells(rownum + 56, 14)).FormulaR1C1 = "=R[1]C+2/4*(RC[-6]-R[1]C)"
Range(Cells(rownum, 16), Cells(rownum + 54, 16)).FormulaR1C1 = "=R[1]C+2/6*(RC[-8]-R[1]C)"
Range(Cells(rownum, 18), Cells(rownum + 49, 18)).FormulaR1C1 = "=R[1]C+2/11*(RC[-10]-R[1]C)"
0644633
NGNGCells(rownum, 17).FormulaR1C1 = "=RC[-9]/RC[-1]-1"
Cells(rownum, 19).FormulaR1C1 = "=RC[-11]/RC[-1]-1"
Cells(rownum, 21).FormulaR1C1 = "=RC[-11]/RC[-1]-1"
Cells(rownum, 23).FormulaR1C1 = "=RC[-13]/RC[-1]-1"
Cells(rownum, 25).FormulaR1C1 = "=RC[-15]/RC[-1]-1"
'Cells(rownum, 26).FormulaR1C1 = "=RC[-18]/RC[2]"
'Cells(rownum, 27).FormulaR1C1 = "=RC[-1]/R[1]C[-1]"
'Cells(rownum, 29).FormulaR1C1 = "=RC[-1]/R[1]C[-1]"
End If
Worksheets(mysheet).Select
Next rownum
Range("A:D").HorizontalAlignment = xlCenter
Range("O:O,Q:Q,S:S,U:U,W:W,Y:Y").NumberFormatLocal = "##0.00%"
Range("N:N,P:P,R:R,T:T,V:V,X:X").NumberFormatLocal = "#,###,###,###"
Range("A1").Select
Next mysheet
End Sub
0645633
NGNG見難くて申し訳ありません。
よろしくお願いします。
0646デフォルトの名無しさん
NGNG0647デフォルトの名無しさん
NGNG最初に入れたら画面が更新されなくなってしまいました。
どうしたらこの不具合を回避できるでしょうか?
0648デフォルトの名無しさん
NGNG0649デフォルトの名無しさん
NGNG(1)シート"×1"だけ処理。(行の削除・追加・Excel関数入力など))
(2) (1)で出来たシートをコピーして、シート"×2"〜 "×10"を作成
(3)シート"×2"〜 "×10"で、シート"×1"と違う部分だけ変更。
というようにしてみてはどうかと思ったんだがいかがなものか。
各シートの内容がどうなってるのかさっぱりわからないのでなんともいえないけど。
0650デフォルトの名無しさん
NGNGExcelXP や Excel2003 もそれは変わっていませんか?
それともVB.netベースになっていますか?
どなたかご存知の方教えてください。
0651デフォルトの名無しさん
NGNG下のような感じで動かしたいのですが、MainからTestを呼び出しても、
testListBoxがNULLになってしまい、動作しません。
どのようにすれば動くようになるのかお教えください。
Sub Main()
Call Test(Form1.ListBox1)
End Sub
Sub Test(testListBox As Object)
testListBox.Clear
End Sub
Office2000のWORD上でやっています。
0652デフォルトの名無しさん
NGNG微妙に関数が増えていたりするが。netではない。
>>651
Sub Main()
Dim clsList As New Class1
clsList.obj = UserForm1.ListBox1
clsList.Test
UserForm1.Show
End Sub
クラス
Dim WithEvents lst As msforms.ListBox
Property Let obj(ByRef o As Object)
Set lst = o
End Property
Public Function Test()
lst.AddItem "ABCDE"
End Function
0654デフォルトの名無しさん
NGNGもらいたいのですけど、
Selection って=現時点のオブジェクトって
ことなのでしょうか?
Selection.xxxの
xxxはそのオブジェクトに依存しているメゾット
とかプロパティというカンジの。
0655デフォルトの名無しさん
NGNGカイル君に聞けよ。
0656デフォルトの名無しさん
NGNGSelectionは Application オブジェクト と Windows オブジェクト のプロパティ
0657デフォルトの名無しさん
NGNG0658デフォルトの名無しさん
NGNGVBにはScreen.TwipsPerPixelXがありますが、VBAにはありません。
どのようにTwipsとPixelを変換すればよいのでしょうか?
お助けください。
0659デフォルトの名無しさん
NGNG[ほかの言葉を使って試してみてください]
0660デフォルトの名無しさん
NGNG1.テキストファイルの読み込み
2.一定時間後再度、同じファイルを読み込み
を行いたいのですが、「2.」で読み込む場合
は「1.」で読み込んだ箇所を飛ばして、更新
された箇所だけ読み込みたいのですが、どの
ようにすればできるのでしょうか?
0661デフォルトの名無しさん
NGNG0662デフォルトの名無しさん
NGNG通常のボタンですと
Toolbars(i).ToolbarButtons(1).OnAction = "method"
みたいに設定できるので
Toolbars(i).ToolbarButtons(1).Menus(1).OnAction = "method"
みたいにやるのかと思ったのですがスカでした。
これは不可能なのでしょうか・・・
0663デフォルトの名無しさん
NGNG0664660
NGNG解決しました。
ありがとうございます。
0665デフォルトの名無しさん
NGNGセルは連続してないこともあるので CurrentRegion は使えず、
印刷範囲の指定をしていないときもあるので PrintArea も使えず、
V/HPageBreak もちょっと違います。
具体的には、改ページプレビューで一番外側の青色の線の位置が知りたいんですが。
よろしくお願いします。
0666デフォルトの名無しさん
NGNGとかありますか?
0667デフォルトの名無しさん
NGNGPrintAreaで取れなければ一番端のセルを取ればいいだろ
Dim strAddress As String
strAddress = ActiveSheet.PageSetup.PrintArea
If strAddress = "" Then
Range("A1").Select
ActiveCell.SpecialCells(xlLastCell).Select
strAddress = "$A$1:" & Selection.Address
End If
>>666
インスタンスを1回しか生成せず、Public変数しか使わなければ
ほとんど変わらんし、インスタンスを何度も作れば遅くなるのは
どんな言語でも常識
0668デフォルトの名無しさん
NGNGEXCEL2000で以下のような記述をしたところ、EXCEL2000ではうまく動くのですが、
別機種のEXCEL2002ではエラーメッセージが表示されてうまく動きません。
【VBA】
Range(2, "A"), Cells(65536, "L")).Select
Cells(Main_X_start, Main_Y_start).Activate
Selection.ClearContents
Selection.Font.ColorIndex = 1
【2002エラー】
実行時エラー'1004':
「FontクラスのColorIndexプロパティを設定できません。」
対象シートは保護されてますが、Rangeで指定された範囲のロックはされていません。
ColorIndexをColor=RGB(・・・・に修正しても結果は同じでした。
メッセージだけ見ると、Fontオブジェクトをクラスとして認識してしまってる様なのですが・・・・・・
お分かりの方がいらっしゃいましたら、うまく避ける方法を教えてください。
OSは2台ともWIN2000です。
0669デフォルトの名無しさん
NGNG例外が起きた後インスタンスがすべて解放されてるのが泣けるのでなんか考えます。
0671デフォルトの名無しさん
NGNGWorksheets("Sheet1").Range("F9").Select
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
Application.OnTime Now + TimeValue("00:00:10"), "Macro2"
End Sub
Sub Macro2()
Worksheets("Sheet1").Range("F9").Select
With Selection.Interior
.ColorIndex = 46
.Pattern = xlSolid
End With
End Sub
上記のようなマクロで、マクロ実行後Macro2が呼ばれる前に
別Bookを開いていると(ActiveなSheetは「2」)
===========================
実行時エラー'9':
インデックスが有効範囲にありません。
===========================
どのように回避すればよいのでしょうか?
0672デフォルトの名無しさん
NGNG0673デフォルトの名無しさん
NGNGMacro2の対象が元のワークブックならThisWorkbookつけろ
0674671
NGNGありがとうございました。
下記のように記述したら、解決したのですが、
現在Activeのbookが非Activeになるのですが、
現在ActiveのbookはActiveのまま、裏でマクロ
を実行されることはできないのでしょうか?
〜省略
Sub Macro2()
ThisWorkbook.Activate
Worksheets("Sheet1").Range("F9").Select
With Selection.Interior
〜省略
0675デフォルトの名無しさん
NGNGrangeじゃないですよね。
0676デフォルトの名無しさん
NGNGRangeじゃない?
0677デフォルトの名無しさん
NGNGエクセルシートからCSVファイルを作成するときに
Open file
write #Fileno long(1),long(2),・・・
close file
として数値をダブルコーテーションでくくられていない状態にできるのは
わかったんですけど、
write #Fileno double(1),double(2),・・・
としたときに 0.123 のような値の出力は .123 とされてしまいます。
一の位の0が落ちないようにCSVを作成するにはどうしたらいいのでせうか?
0678デフォルトの名無しさん
NGNGVBAは使ったこと無いのだが
Format(0.123, "#0.###")
みたいな事はできないのか?
0679デフォルトの名無しさん
NGNG0680677
NGNGありがとうございました。
明日会社でやってみます。
0681デフォルトの名無しさん
NGNG0682デフォルトの名無しさん
NGNGいますよ。
で?VBAでやりたいのか?
0683デフォルトの名無しさん
NGNG0684デフォルトの名無しさん
NGNG宿題は自分でやれ。
0685デフォルトの名無しさん
NGNG0686句読点書けないバカをサマージャンボする俺 ◆9NQzQ21lx.
NGNG0687デフォルトの名無しさん
NGNGで、cancelとかいいえをおすとSaveAsメソッドに失敗したという実行エラーになる。。。
処理の最後の部分なので、Resume Nextで進めばいいかとしておきましたが
何かもっとスマートに解決する方法無いですかね?
0688デフォルトの名無しさん
NGNGsaveasの後にスペースを打ってみろ。
0689デフォルトの名無しさん
NGNGDirで存在調べてあったら消しゃいいだろ
0690デフォルトの名無しさん
NGNGだせぇ。
0691デフォルトの名無しさん
NGNGOn Error Gotoで例外処理。
JavaとかC#とかではそれが当たり前。
0692デフォルトの名無しさん
NGNG0693デフォルトの名無しさん
NGNGそっかそっか。勝手に消すかはともかく先回りして調べておきゃいいよな。
例外処理はTryCatchでできればいいけんだけど、まぁVBAだし。
0694デフォルトの名無しさん
NGNGこれかな?
ttp://support.microsoft.com/default.aspx?scid=kb;ja;JP292482
0695デフォルトの名無しさん
NGNG>そっかそっか。勝手に消すかはともかく先回りして調べておきゃいいよな。
キャンセルしたら元ファイルが消えるという愉快な罠。
0696デフォルトの名無しさん
NGNG行だけは相対参照で、列が絶対参照なんです。
0697デフォルトの名無しさん
NGNG0698デフォルトの名無しさん
NGNGない
フックしろ
0699696
NGNGActiveCell の行の1列目から10列目までのセルの背景を黒くするマクロ
を書きたいのですが、どう書けばよいのかわかりません。
行が相対参照で列が絶対参照なんです。
0700デフォルトの名無しさん
NGNGCells(ActiveCell.Row, 1).Resize(1, 10).Interior.ColorIndex = 1
でいいのかな?
0701デフォルトの名無しさん
NGNGどこでつまづいているんだろう。
アクティブセルの行数を取得できているか、
Rangeで選択するときにCellsを使っているか、
ぐらいじゃないか。
0703きょうこ。
NGNGtextCommentが検索対象のテキストとして
InStr(0, textComment, Chr(10), vbTextCompare)
とやっても8文字目にはいってる改行コードの位置が帰ってきません。
vbTextCompareをvbBinaryCompareにしてもだめでした。
textComment の中身をメモ帳に貼り付けるとちゃんと改行されるんですけど・・・
0704Instr(1,
NGNG0705デフォルトの名無しさん
NGNGInstrのスタートは1から
0706デフォルトの名無しさん
NGNGどう書けばよいのでしょうか
0707デフォルトの名無しさん
NGNG0708デフォルトの名無しさん
NGNGC++で作成したDLLとExcelの間で、文字列の配列を
ユーザ定義型の中の二次元配列でやり取りしようとしてます。
(この時点で間違ってるかな…)
で、
public Type STRUCT
buf(10) As String * 64
end Type
------------------------
Dim struct As STRUCT
としてDLLに渡してやると上手くいくんですが、
渡す直前に配列数を増やそうと思い、
public Type STRUCT
buf() As String * 64
end Type
------------------------
Redim struct.buf(10) As String * 64
としてDLLに渡すと上手くいきません。
理由や代替法など、どなたかご教授願えませんでしょうか?
0709デフォルトの名無しさん
NGNG上手くいきません上手くいきません上手くいきません上手くいきません
上手くいきません上手くいきません上手くいきません上手くいきません
上手くいきません上手くいきません上手くいきません上手くいきません
症状くらい書けねえのか!
0710デフォルトの名無しさん
NGNGはいはい
0711708
NGNGすみません…
症状の方は、DLLの関数を実行して処理が戻ってきた時に落ちます。
「0xXXXXXXXX での命令は、 0xXXXXXXXX のメモリを参照しました。
メモリが read になることができませんでした。」
と、デバッガを起動させると表示されました。
0712デフォルトの名無しさん
NGNGWrite #ステートメントで文字列であってもダブルクォートで括らないように出力したいのです
Print #でカンマと改行コード足してやるか、SaveAsでFileFormatをcsvでするしかないんでしょうか?
0713デフォルトの名無しさん
NGNG0714デフォルトの名無しさん
NGNGRDOを使おうとして、rdoEnvironmentを
setすると、ActiveXコンポーネントはオブジェクトを
作成できません。
といわれます。
参照設定でRDO2.0を設定しても同じです。
RDOは使えないのですか?
0715デフォルトの名無しさん
NGNG肝心な所を隠すのか。。。
0716デフォルトの名無しさん
NGNGExcelでプロセスメモリエディタのようなものを作ろうと思っているのですが
ExcelVBAでメモリ内の指定のアドレスの値を読むには
どのようにしたらいいのでしょうか?
0717デフォルトの名無しさん
NGNG”ヌレポ”というシートが存在した場合はBの処理をするようにしたいのですが、
どのような関数を使えばいいのでしょうか?
教えてください。
0718717
NGNGOn Error GoTo Err1
Set Sh = Sheets("ヌルポ")
Worksheets("ヌルポ").Copy After:=Workbooks("galtu").Worksheets("nullpo")
GoTo Shori
Err1:
On Error GoTo Err2
Set Sh = Sheets("ヌレポ")
Worksheets("ヌレポ").Copy After:=Workbooks("galtu").Worksheets("nullpo")
GoTo Shori2
Err2:
Workbooks("galtu").Close
MsgBox "ヌルポもヌレポも存在しないファイルを選択しました。処理を中止します。"
GoTo ErrorEnd
どうもerr1の処理はしてくれるのですがerr2の処理はしてくれないのです。
どこがいけないのか教えていただけないでしょうか?
0719デフォルトの名無しさん
NGNGShoriラベルがない。
そう言う使い方する場合はなるべくOn Error Resume Nextを使ってくれ。
読みにくい。
0720デフォルトの名無しさん
NGNGttp://www.microsoft.com/japan/msdn/library/ja/vblr7/html/vastmonerror.asp
>エラー ハンドラがアクティブな間 (エラーの発生から、Resume、Exit Sub、Exit Function、
Exit Property の各ステートメントまで) にエラーが発生した場合は、現在のプロシージャの
エラー ハンドラはエラーを処理できません。
0721717
NGNGresume を入れていないからどの部分でエラーが起こっても
On Error GoTo Err1
だけ処理をしてしまって
On Error GoTo Err2
が使われなかったということっすよね?
resumeを知りませんでした。どうもありがとうございました。
0722デフォルトの名無しさん
NGNGあるフォルダのパスを取得して、そのフォルダ内の
ファイル名をセルに書き出して・・・というマクロを作ってるんですが
対象になるフォルダパスの取得方法に悩んでいます。
ファイルを開くダイアログボックスみたいなのをだして
フォルダパスを取得したいんですが
どうしたらいいのでしょうか?
0723デフォルトの名無しさん
NGNGでググるとすぐ引っ掛かるが…
0724716
NGNGスレ汚してスマソ
0725デフォルトの名無しさん
NGNG質問です。
エクセルで当番表の様なものをつくっています。
土日はその列の背景をオレンジにするようなマクロを作成したいのですが
〜抜粋〜
Do
If ActiveCell.Value = "土" Then
row = ActiveCell.row
col = ActiveCell.Column
Range(Cells(6, col), Cells(26, col)).Select
With Selection.Interior
.ColorIndex = 44
.Pattern = xlSolid
End With
〜省略〜
この様な感じで一応は動きます。
ただシート側の曜日の作成をDATE関数で作成しており、↑の比較ではシリアル値が比較対象となっているせいか
うまく土曜日、日曜日を判定してくれません。エクセル上のシリアル値ではなく表示されている文字で比較する方法はないのでしょうか?
いい解決策がありましたらよろしくお願いします。
0726デフォルトの名無しさん
NGNGExcel2000です。
0727デフォルトの名無しさん
NGNG0728デフォルトの名無しさん
NGNGhttp://www.asahi-net.or.jp/~ef2o-inue/api/sub08_01_020.html
0730デフォルトの名無しさん
NGNG0731デフォルトの名無しさん
NGNGIf ActiveCell.Text = "土" Then
0732デフォルトの名無しさん
NGNG渡したいのですけど、publicしか方法はないんですか?
逆にフォームの値もモジュールに渡したいんだけど・・。
よく分かりません。出来ればDimでなんとかできませんか?
0733デフォルトの名無しさん
NGNGソケットでも張れ。
0734デフォルトの名無しさん
NGNG非表示にしたラベルのCaption使うとか。
0735デフォルトの名無しさん
NGNG0736デフォルトの名無しさん
NGNGユーザが不用意に不正な値を変数にセットするのを防ぎたいんだろう。
つまりアクセサメソッドのことを言いたいんだよ。彼は。
0737デフォルトの名無しさん
NGNGクラス作るのめんどうなんで、もっと簡単な
方法ないかと思っていたのですけど。
ありがとうございます。
0738デフォルトの名無しさん
NGNGユーザーフォームもクラスなのでそういうことをしたければ
Property Let/Getがつかえる。
その場合でもPublic PropertyになるのでPublicは必ず必要。
それでもPublicが嫌ならPrivate Propertyにすればいいが、
そうするとユーザーフォームでしか使えない。
だからPublicを使いたくない理由が理解できなかったのだが。
元発言の意図がProtectedを使いたいのだとばかり…
0739デフォルトの名無しさん
NGNG通常のシートの場合だと、cell.numberformat = "@" で
うまくいくことを確認しているのですが、spreadsheet では他の方法が
必要なのでしょうか?
わかる方いらっしゃったら、よろしくお願いします
0740デフォルトの名無しさん
NGNG継承できないじゃん。と、つっけんどん。
0741デフォルトの名無しさん
NGNGだれかご教授ください
0742デフォルトの名無しさん
NGNGx^x=y
を解け
0743デフォルトの名無しさん
NGNG「開平算」でYahoo検索してみるのは?
0744デフォルトの名無しさん
NGNG0745デフォルトの名無しさん
NGNGすまねぇSqrってやつがどーしてもでてこなかったorz
自己解決しますた
742さん 743さん 助言ありがとです
0746デフォルトの名無しさん
NGNGSet ValidMode = CreateObject("Excel.Validation") 又は
Set ValidMode = New Excel.Validation
これが通らない理由がわかりません。
なぜでしょうか?
0747デフォルトの名無しさん
NGNG0748デフォルトの名無しさん
NGNG文字列で「AA」が入ったセルだけををシート2のB列にコピーしたいのですが
どうしてもうまくいきません、誰か助けてください
0749デフォルトの名無しさん
NGNG取りあえずお前が書いたソースup
0750デフォルトの名無しさん
NGNG0751デフォルトの名無しさん
NGNGVBEで、プロジェクトエクスプローラーに
microsoft Excel Object
┣---sheet1
┣---sheet2
┣---sheet3
標準モジュール
┗---modules1
ってある場合、modules1の変数は
sheet1に渡すことはできるのでしょうか?
0752デフォルトの名無しさん
NGNGプロシージャの外、一番上に、Publicで宣言。
Public Hensu As String
みたいに。
0753デフォルトの名無しさん
NGNGすみません。できました。
0754デフォルトの名無しさん
NGNG0755デフォルトの名無しさん
NGNG1 7
2 4
3 9
4 2
のような表があるときに作業番号1〜4に対してそれぞれの持っている時間を
求めるにはどうやればいいのでしょうか?
それを使ってその中から最小の値の番号を調べるようなプログラムを作りたいのですが
0756間違えた
NGNG1 7
2 4
3 9
4 2
のような表があるときに作業番号1〜4に対してそれぞれの持っている時間を
求めるにはどうやればいいのでしょうか?
それを使ってその中から最小の値の番号を調べるようなプログラムを作りたいのですが
0757>>756
NGNGまず他人の立場に立ってみて、この説明を読んで質問内容が理解できるか
考えてみ。
0758デフォルトの名無しさん
NGNGマジか?シスアドレベルだぞ?
0759デフォルトの名無しさん
NGNG0760>>757
NGNG0761デフォルトの名無しさん
NGNG0762デフォルトの名無しさん
NGNGお薦めの一冊はどれでしょうか?
0763デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/bsoft/
こっちの板で質問した方が良さげかもなぁ
webやhelpで事足りるんで本買わない
0764デフォルトの名無しさん
NGNG0765デフォルトの名無しさん
NGNGACCESSからEXCELファイルを開く際、
該当のファイルがすでに開かれているか
チェックしたいのですが・・・。
EXCELのVBAではできたのですが、
それをACCESSで行おうとするとうまくいきません・・・。
0766デフォルトの名無しさん
NGNGExcelでリストボックス内の項目をダブルクリックしたあとに
選択が解除されている状態にしたいのですがうまくいきません。
ListIndexを-1にすればいいというような記述を見つけたので
やってみましたが、選択された状態(項目が反転表示)のままです。
List.Clearして項目を追加しなおすという作業が必要なのでしょうか、、、
0767デフォルトの名無しさん
NGNGどううまくいかないのか書かないと誰も答えられません。
0768デフォルトの名無しさん
NGNGAccess2000で、以下のようなことをやりたいのですが、うまい方法が思いつきません。
クラスモジュールとして
Class1
Class2
:
Class8
があり、Class1〜8には同じ名前のメソッドが定義されている。
他のクラスモジュールから、Classiのインスタンスを生成したいのですが、
Public sub test(i as integer)
Dim obj as Object
set obj = new ________
:
newの後に、固定以外のクラスを指定する方法が分かりません。
クラスのコレクションみたいなのがあって、"Class" & format(i,"0") でうまいこと出来ないものでしょうか。
どうぞ宜しくお願いいたします。
0769デフォルトの名無しさん
NGNGファクトリを作りなさい。
0770デフォルトの名無しさん
NGNGとりあえず2通り。
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
ListBox1.Value = ""
End Sub
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
With ListBox1
.Selected(.ListIndex) = False
End With
End Sub
0771デフォルトの名無しさん
NGNG>があり、Class1〜8には同じ名前のメソッドが定義されている。
設計を見直した方がいいとおもう
0772デフォルトの名無しさん
NGNGインタフェース使って、あとは>769の言うようにファクトリ的な事すりゃスマートに書けるかと。
0773デフォルトの名無しさん
NGNGVB以外の先進的なプログラミング言語の本の多態とかポリモフィズムって言う章を良く読むよろし。
0775デフォルトの名無しさん
NGNG田中
01-480-21
2350
ひらい
01-481-21
2540
これで文字列のとこだけ処理かけたいのですが
0776デフォルトの名無しさん
NGNG使われている文字コードの範囲が 30H 〜 39H のみからなる場合
かどうかを調べる。
0777デフォルトの名無しさん
NGNG日付の場合は数字扱い?文字列扱い?
0778デフォルトの名無しさん
NGNG0779デフォルトの名無しさん
NGNG今日なら「2004/11/20」です。
0780デフォルトの名無しさん
NGNGここでの場合、これも数字扱いするの?どっち?
0781デフォルトの名無しさん
NGNGそれは日付なんですか?
0782デフォルトの名無しさん
NGNG文字列だろ。いちいち聞かないと分からないのか?
0783デフォルトの名無しさん
NGNGPrologにマジレスカコワルイ。
0784780
NGNG「01-480-21」は文字列として省いていんだな?例で挙げている「2350」や「2540」を
抽出するだけでいいんだな?
あと「名前」>「なんかのハイフン入り番号」>「四桁のなんかの番号」のペアは必ず一定で、繰り返し続いて
いるのか?
0785デフォルトの名無しさん
NGNG誰がそんなこと言った?
0786780
NGNGISNUMERIC関数を使え。そんだけ。
0787デフォルトの名無しさん
NGNG0788デフォルトの名無しさん
NGNGユーザーフォームを表示させながらセル操作をする方法はあるのでしょうか?
若しくはシート上に作ったボタンが画面をスクロールさせても常に同じ位置にあり続ける方法を
教えて頂けないでしょうか?
初歩的な質問かもしれませんが、検索してもなかなか説明してるページに
たどり着けません。どなたかよろしくお願いします。
0789デフォルトの名無しさん
NGNGもーだれす。
0790デフォルトの名無しさん
NGNGModelessは旧バージョンでつかえないのでその場合はあきらめる
定期的にボタンを移動させるだけなら
Public Sub MoveShapeTop(ByVal UpdateIntervalSec As Integer)
Dim rng As Range
Set rng = Cells(ActiveWindow.ScrollRow, ActiveWindow.ScrollColumn)
ActiveSheet.Shapes(1).Top = rng.Top
ActiveSheet.Shapes(1).Left = rng.Left
Application.OnTime Now + TimeSerial(0, 0, UpdateIntervalSec), "'MoveShapeTop 1'"
End Sub
こんなことしないでコマンドバー使ったほうがマシ
0792デフォルトの名無しさん
NGNG0793デフォルトの名無しさん
NGNGf=M/Nで表されるプログラムを作成してください。
コインの投げる回数はセルA4~A7の中から1つ取り出した後に
Integer型変数に格納して使用し、「表」のでる
割合f=M/Nを対応するセルB4~B7に格納する。
なお、「コイン投げの回数」が格納されているセル位置を毎回修正後に
プログラムを実行すること。
コインを投げる回数Nを大きくすると0.5に収束することを確めてください。
※A4~A7はコイン投げの回数
A4は10,A5は100,A6は1000,A7は10000というコイン投げの回数になってます。
よろしくおねがいします。
0794デフォルトの名無しさん
NGNG学校の課題ですか?
0795デフォルトの名無しさん
NGNG0796デフォルトの名無しさん
NGNGうちはそれを生業にしているシンクタンク系S/Wデベロッパですが。
0797デフォルトの名無しさん
NGNGスレ違いかもしれませんが
質問していいでしょうか。
VBAを勉強したいのですが
お勧めの本はありますか。
定番の本など。
急にexelでマクロを書かなくてはならなくなり
田舎に住んでいまして、近くに大きい本屋がなく
店頭で立ち読みしてきめることができません。
アマゾンで購入しようと思っています。
プログラムは、C++やPerlがちょっと書けるくらいです。
よろしくお願いします。
0798通りすがり
NGNG・基礎編、・コントロール・関数編、・応用編
定番です
0799デフォルトの名無しさん
NGNG早々のご回答どうもありがとうございます。
早速アマゾンで注文したいと思います。
あつかましいのですがもうひとつだけ質問していいでしょうか。
現在、使用しているexelのバージョンが2000なのですが
その場合、
1.かんたんプログラミング Exel2000 VBA を買う
2.かんたんプログラミング Exel2003 VBA を買う
3.かんたんプログラミング Exel2003 VBA と Exel2003を買う
のどれがいいでしょうか。
3.が一番良いのでしょうが、2003用の本でも「リスト機能」など
強化されたところをとばせば、2000用の解説書として読めるのでしょうか。
申し訳ありませんが、わかる範囲でご回答いただけたらうれしいです。
0800通りすがり
NGNG1番が無難かと。
あと分からないことは、下のサイトで聞けばよいと思います。
「Moug モーグ」
http://www.moug.net/
Q&A掲示板 Excel VBA
0802デフォルトの名無しさん
NGNG0804793
NGNG0805デフォルトの名無しさん
NGNG宿題は自分でやりましょう。
0806デフォルトの名無しさん
NGNGTO_DATE('23-11-2004 11:36:44 AM ','dd-Mon-yyyy HH:MI:SS AM')
な感じで保存されてる日付データがあるんだが、
これの年月日だけ取り出すにはどーすればいいのかね
もしくは全部変数に抽出して、
変数の年月日だけ指定できたらいいんだが‥
むぅ
0807デフォルトの名無しさん
NGNG0808デフォルトの名無しさん
NGNGTO_DATE('23-11-2004 11:36:44 AM ','dd-Mon-yyyy HH:MI:SS AM')
という文字列が入ってるって事け?
あとSQLServerをSQLと略すのヤメレ
0809デフォルトの名無しさん
NGNG多重ループにラベル付けておいて Exit ラベル名 とかで
脱出するようなことってできなかったんでしたっけ?
何かあったような気がするのですが。。。Goto使うしかないのかな。
0810デフォルトの名無しさん
NGNG0811809
NGNGある条件でループをそれ以上実行しなくて良くなるので
その関数の終了処理に移りたいという感じ。
Do While ...
For ...
Exit Do
Next
Loop
<<終了処理>>
みたいな感じででとりあえずやってるのですが、
外側のループを Forループにしたいんです。
0812デフォルトの名無しさん
NGNG0813デフォルトの名無しさん
NGNGその関数内では終了処理できなくなってしまう気が…
0814811
NGNGこの手の処理にはキモイやりかたですよね?
どう思います?
0815デフォルトの名無しさん
NGNG0816デフォルトの名無しさん
NGNG0817デフォルトの名無しさん
NGNG黙ってgotoすることにしました。ありがとうございます。
0818デフォルトの名無しさん
NGNG初めてVBAを使います.
Data0001
Data0002
:
:
と,順番にファイルを読み込みたいです.
For i=1 to n
Workbooks.Open Filename:="Data000???.xls"
???のとこのプログラムをどのようにすればいいでしょうか?
0819デフォルトの名無しさん
NGNG"Data" & Format(i, "0000") & ".xls"
0820デフォルトの名無しさん
NGNG助かりました.
初めて使うもので,わからないことが多いもので
0821デフォルトの名無しさん
NGNGに、VBAのプログラムを修正して行わず、自動的に実験回数10が終了すると実験回数
100、1000、10000と進むようにするにはどうすればいいのでしょうか。
0822デフォルトの名無しさん
NGNGDim i As Long, 実験回数 As Long
For i = 1 To 4
実験回数 = Range("A1").Value ^ i
MsgBox 実験回数
Next
0823デフォルトの名無しさん
NGNGありがとうございます。
0824デフォルトの名無しさん
NGNG女性客からデタラメに1人選んだ時に、その人が独身である確率を求めた時の
条件付のプログラムを作成した場合、For文、 IF文の使い方、
乱数の使用が分かりません。
実験回数10が終了すると実験回数100、1000、10000と進むようにする。
確率が0.5に収束することを確かめる。
どうすればいいでしょうか?
0825デフォルトの名無しさん
NGNG試行できるぞ。
0826824
NGNGエクセルの操作で行うのではなく、全てVBAで行わないといけないんです
0827デフォルトの名無しさん
NGNG0828デフォルトの名無しさん
NGNG30%ってのは女性客に対する独身女性の割合だと
おもうんだが、答えが0.5に収束するってのは変だよね。
実は30%というのは全体に対する独身女性の割合なんじゃ
ないの? ○投げにしても問題文ちゃんとこぴぺ
してくれよ。
0829824
NGNGある旅行ツアーで参加者を調べたところ、60%は女性(40%は男性)で、
その内30%は独身女性であった。女性客からデタラメに1人選んだ時に、
その人が独身である確率を求めよ。
事象A:独身である人
事象B:女性である
条件付き確率の公式によって、0,5(確率が0.5に収束することを確かめる)
0830デフォルトの名無しさん
NGNG0831デフォルトの名無しさん
NGNGP(A|B)=P(A∩B)/P(B)
0832デフォルトの名無しさん
NGNG女性客の内30%が独身で、
女性客からデタラメに1人選んだときに
独身である確率は、当然30%だろ。
0833デフォルトの名無しさん
NGNG0834デフォルトの名無しさん
NGNGボタンクリックイベントでリストボックスを引数にしたプロシージャを呼び出す形で
リストボックスのvisibleをトグルしたいのですが上手くいきません
以下失敗作ですがアドバイスお願いします
'リストボックス名 lbcustomer
'ボタン名 cbToggleCustomerList
'Aタイプ:
Private Sub cbToggleCustomerList_Click()
AnyListBoxVisibleTggle (ActiveSheet.OLEObjects("lbCustomer"))
End Sub
Sub AnyListBoxVisibleTggle(AnyListBox As Variant) '型は何?
AnyListBox.Object.Visible = Not AnyListBox.Object.Visible
End Sub
'Bタイプ:
Private Sub cbToggleCustomerList_Click()
AnyListBoxVisibleTggle (lbCustomer)
End Sub
Sub AnyListBoxVisibleTggle(AnyListBox As Variant) '型は何?
AnyListBox.Visible = Not AnyListBox.Visible
End Sub
0835デフォルトの名無しさん
NGNGAタイプ
AnyListBox.Visible
Bタイプ
Activesheet.lbCustomer
0836デフォルトの名無しさん
NGNG両方で出来ました
色々試したつもりだったんですが
同じ間違いを繰り返し続けてたのかもしれません・・・
有り難うございました
0837デフォルトの名無しさん
NGNGVBAでフォーム上のテキストエリアで右クリックしたときにメニューを表示させたいのですがどうすればいいのでしょうか?
0838デフォルトの名無しさん
NGNGコンボボックスで値を編集できないようにする方法を誰か教えて
listfillrange を a1:a10 とセル範囲を指定するまではいいけど、
その値を編集できて値が変わるのがダメなんですよ。。。
0839デフォルトの名無しさん
NGNG自分の金は自分で稼げ。
0840デフォルトの名無しさん
NGNGマルチ君さよなら。
0841デフォルトの名無しさん
NGNGオブジェクト指向と言えますか?
0842デフォルトの名無しさん
NGNGC言語でかきゃ構造化というわけでもないのと同様でちゃんチャラお菓子い。
0843デフォルトの名無しさん
NGNGダブルクリックイベントって無効に出来ますか?
それとも何か良い解決方法がありますか?
0844デフォルトの名無しさん
NGNG0845デフォルトの名無しさん
NGNGダブルクリックするとクリックイベントが2回発生して欲しいんですが
2回目は空のダブルクリックイベントプロシージャが回ってる感じがします
ダブルクリックにもクリックと同じコードを書くって手もありますが
美しくない気がしますしそもそもクリックアップダウン時の挙動が違ってきますし・・・
0846デフォルトの名無しさん
NGNG0847デフォルトの名無しさん
NGNG0848デフォルトの名無しさん
NGNG0849独学者
NGNG加工しようとするプログラムを作ったのですが、
入力データがあまりにも多すぎるためか、入力が完全にされる
前に次の作業を行ってしまい、エラーが生じます。
誰か、解決策を教えてください。
0850デフォルトの名無しさん
NGNG0851デフォルトの名無しさん
NGNGDateSerialで、今年度の3月31日を出すところまでやったのですが。。。
0852デフォルトの名無しさん
NGNG足し算と引き算が出来ると作れるよ
つまり算数の教科書を読めば良いということだね
0853デフォルトの名無しさん
NGNG0854デフォルトの名無しさん
NGNGVBA初心者なのでこの程度まだ思い浮かびませんが・・・
A列:誕生日
B列:今年度の日(3月31日)
C列:今年度の年齢を表示
Dim n, counter As Integer
n = Sheets("Sheet1").Range("A65535").End(xlUp).Row
counter = 0
For i = 1 To n
counter = counter + 1
Sheets("Sheet1").Cells(counter, 3) = _
Application.RoundDown(((Cells(counter, 2) - Cells(counter, 1) - ((Cells(counter, 2) - Cells(counter, 1)) / (365 * 4))) / 365), 0)
Next i
※B列がCells(counter,2)なので、この部分は今年度の日が一定なら定数にしても良いと思います。
もっとすっきり出来るのであればご教授下さい>中上級者の皆様
0855854
NGNGApplication.RoundDown(((Cells(counter, 2) - Cells(counter, 1) - ((Cells(counter, 2) - Cells(counter, 1)) / (365 * 4))) / 365), 0)
↓
Application.RoundDown((Application.RoundDown((Cells(counter, 2) - Cells(counter, 1)), 0) - Application.RoundDown(((Cells(counter, 2) - Cells(counter, 1)) / (365 * 4)), 0)) / 365, 0)
に変更してください。
でも汚いですね・・・;;
0856デフォルトの名無しさん
NGNG再点検することにしている。製品が不合格になる確率をp=0.05, p=0.1,
と変えながらそれぞれ製品数500個を検査した場合、
「再点検(再点検回数と再点検率)」する回数とその確率を求める
VBAプログラムをつくりたいと思っています。
*1回目の不合格の製品が見つかると2回目の製品が不合格になるまでに検査
した製品をカウントする。
*1回目の不合格製品と2回目の不合格製品の間の製品カウントが5以上の場合に
再点検回数を1増やす。
乱数、If文、for文を使用しなけ
ればならないことは分かっているんですが・・
0857851
NGNGレスありが�dです。
あれから自分なりに考えて見ました。
Function 年度年齢(生年月日 as Date)
Dim 今月 As Byte
Dim 今年度の日 As Date '←3月31日のこと
Dim 誕生月 As Byte
今月 = Format(Date,"m")
Select case 今月
Case 1,2,3
今年度の日 = DateSerial(Year(Date),3,31)
Case Else
今年度の日 = DateSerial(Year(Date)+1,3,31)
End Select
'↑ここまでこの前考えてた所です
誕生月 = Format(生年月日,"m")
Select Case 誕生月
Case 1,2,3
年度年齢 = DateDiff("yyyy",生年月日,今年度の日)
Case Else
年度年齢 = DateDiff("yyyy",生年月日,今年度の日)-1
End Select
End Function
合ってるかどうか確証がなかったのですが、
デバックすると、なんとなく年齢はあってるようなので、
この形で落ち着きました。
>854さんすいません…また分からないことあったら教えて下さい。
0858デフォルトの名無しさん
NGNGそれを簡潔にするとこうかな?
Function 年度年齢(生年月日 As Date)
Dim 今月 As Byte, 誕生月 As Byte
Dim 今年度の日 As Date '←3月31日のこと
今年度の日 = DateSerial(Year(Date) + IIf(Format(Date, "m") <= 3, 0, 1), 3, 31)
年度年齢 = DateDiff("yyyy", 生年月日, 今年度の日) - IIf(Format(生年月日, "m") <= 3, 0, 1)
End Function
0859デフォルトの名無しさん
NGNG最初に表示されているフォルダを指定する方法ってありますか?
苦肉の策で Application.Dialogs(xlDialogSaveAs).Show で
ファイル名にフルパスを指定したんですが
何故かパスが削られてファイル名のみ有効になりますし・・・
0860デフォルトの名無しさん
NGNGコンボボックスからモジュールへ値を持って取ってきたいのですが出来ません。
本来だったらコンボボックス名.valueで取れると思うのですが私がしたいのは
列数3,列幅0cm;2cm,0cmのところから二つ目の列の値を持ってきたいのです。
従来通りコンボボックス名.valueをすると一列目が取れてしまいます。
どのようにすれば二列目の値を取ることができるでしょうか?
ご教授お願い致します。
0861860
NGNGコンボボックス名.Column(列番号)でした。
0862デフォルトの名無しさん
NGNGインデックスは0かららしいです、念のため。
0863862
NGNGタッチの差やった…。
0864デフォルトの名無しさん
NGNGここにデータを入力したデータをDBに反映させたり出来るのでしょうか?
色々資料を見るとテキストエリアを並べてRDBの様に見せかけてるやつが
多いのですが・・・。
また「検索」ボタンを押すとコンボで選択した値をキーに検索をかけ
サブフォームに反映させたいのですがどのようにすれば可能でしょうか?
2つやり方を思いついたのですがそれで可能なのかが分かりません。
1.コンボの値をモジュールで受け取りSQLを生成してサブフォームに反映。
(SQLを作るところまで出来たのですがサブフォームに反映の仕方がわかりません。)
2.コンボの値をクエリで受け取り画面を生成
どうかご教授お願い致します。
0865デフォルトの名無しさん
NGNGTBL内に任意のアドレスを保持します。
そのアドレスを元に、画像を取得し
コントロールに貼り付けたいと思っているのですが、
画像取得時にWindowsの画面と思うのですが、
「インポート中です」と言うメッセージが出てきてしまいます。
このメッセージを消す方法はないでしょうか?
現在、レジストリ等弄りましたが改善されませんでした。
宜しくお願い致します。
0866デフォルトの名無しさん
NGNGその質問に答える前に一つ聞くがお前巨乳は好きか?
0867デフォルトの名無しさん
NGNGこれはシェルやPerlのevalのように
文字列でサブルーチン名を渡すとそのサブルーチンを実行してくれるような
機能はないのでしょうか?
組み込み関数だと上手くいくようなのですが、自分で定義したものだとどうも駄目です。
関数のディスパッチなどに使えたら便利だなぁと思うのですが…
0868デフォルトの名無しさん
NGNG個々の要素を決してRemoveすることがなければ
Addした順序で並んでいると信じちゃって良いんでしょうか?
ちょっと試したところ、そんな感じになっているのですが。。
0869865
NGNG好きですが
0870デフォルトの名無しさん
NGNGChDir "C:\Temp"
Application.GetSaveAsFilename
0871デフォルトの名無しさん
NGNG関数のディスパッチってこういうこと?
Sub Main()
Dim i As Long
For i = 1 To 3
Application.OnTime Now(), "Test" & i
Next
End Sub
Sub Test1()
MsgBox "Test1"
End Sub
Sub Test2()
MsgBox "Test2"
End Sub
Sub Test3()
MsgBox "Test3"
End Sub
0872デフォルトの名無しさん
NGNGあたりの関数誰か作ってくれないかね?
0874デフォルトの名無しさん
NGNG0876お助けを
NGNGCSVファイルの中身が
・先頭にCRが二つ
・改行がLF
になっていました
毎回、ワードパッドで変換するのも大変なので
エクセルのVBAで改行コードを書き換えようと思いました
CSVファイルをエクセルの#1に取り込んだ後
・先頭のCRを削除
・LFをCRLFに変換
という作業をしたいと思います
0877つづき
NGNG↓こんな感じで構想したんですが
Open FILENAME For Input As #1
<開いた#1を全部 C に突っ込む作業>
C.Replacement What:=Chr(13), Replacement:=""
'LF CRLFへの変換
C.Replace What:=Chr(10), Replacement:=Chr(13) & Chr(10)
<#1に書き戻す作業>
'以下Sheet1に書き込む
という流れを考えたんですが
<開いた#1を全部 C に突っ込む作業>
<#1に書き戻す作業>
この作業がうまくいきません
はたしてChr(13)やChr(10)で変換できるのかも不明・・・
うまくエクセル内部で改行コードを変換したいのですが
達人のみなさん、良い方法ないでしょうか?
0878デフォルトの名無しさん
NGNG0879デフォルトの名無しさん
NGNG置換する前の状態でExcelに取り込むとどういう状態に
なるんですか?
0880デフォルトの名無しさん
NGNGCSVをダブルクリックで普通に開くと
先頭にCRがくっ付いてるので最初の一行目が「・・」か文字化け、あるいは「・・データ」または
一行目も正常に読まれる
という状況です
2行目以降は、LFはCRLFに置き換えて読み込まれて各セルに格納されるようです
Open FILENAME For Input As #1
をつかっているのは
CSVそのままだと65536行以上になる場合があるので
内部で開いて同じグループは横に伸びるように振り分けて取り込んでいます
ワードパッドで毎度変換するのも大変なので
なんとかできないものかと思考錯誤しております
0881デフォルトの名無しさん
NGNG参考になれば。
Sub Macro1()
Dim FS, CSVFile
Dim FileName As String, CSVStr As String
FileName = ActiveWorkbook.Path & "\TEST.CSV"
Set FS = CreateObject("Scripting.FileSystemObject")
Set CSVFile = FS.OpenTextFile(FileName)
Do Until CSVFile.AtEndOfStream
CSVStr = CSVStr & Replace(CSVFile.ReadLine, vbCr, "") & vbCrLf
Loop
CSVFile.Close
Set CSVFile = FS.OpenTextFile(FileName, 2)
CSVFile.Write CSVStr
CSVFile.Close
MsgBox "変換完了"
End Sub
0882デフォルトの名無しさん
NGNGこんな夜更けに有難うございます!!!
とりあえず、今あるマクロに上記のコードを組み込んだら
秀丸で意図的に作ったLF改行のCSVで
うまく動きました
明日・・・というか今日ですが
881さんのを参考に職場の方にある問題のCSVファイルで実行
してみます
これから寝ます
かみさまありがとうございました
0883デフォルトの名無しさん
NGNGSet Ctrl = Application.CommandBars("Cell").Controls.Add()
With Ctrl
.OnAction = "Sheet1.Hoge"
.Parameter = "12345"
End With
とすると、Sheet1.Hoge が引数 "12345" で呼び出されるようなことが
ヘルプにあるのですが、どうも引数が渡っていないようです。
Public Sub Hoge(Arg as String)
と受け側を定義して実行すると「引数は省略できません!」と怒られてしまいます。
多分、どこか間違っているのでしょうが、コマンドバーから呼び出す関数に引数を渡すのは
どうやったら良いのでしょうか?お助け下さい。
0884デフォルトの名無しさん
NGNG組み方が思いつきません
何重かのループになりそうなんですが…
0885デフォルトの名無しさん
NGNGハッシュとか連想配列を使いたいということですかね?
0886デフォルトの名無しさん
NGNG違うもんでしたっけ?
0887デフォルトの名無しさん
NGNG確実に間違った解決法だと思うけど、
With Ctrl
.OnAction = "Sheet1.Hoge"
.Parameter = "12345"
End With
↓
With Ctrl
.OnAction = "'Sheet1.Hoge 12345'"
End With
とすると引数(12345)は渡されてるようです。
0888デフォルトの名無しさん
NGNGあ、シングルコーテーションするのですね!!
やってみます!!ありがとうございます
0889デフォルトの名無しさん
NGNGツラレクマー
0890デフォルトの名無しさん
NGNGばっちしでした。ありがとうございます。
0891デフォルトの名無しさん
NGNGMicrosoft Scripting Runtimeに参照設定(or CreateObject)して
Scripting.Dictionary使うなり
Collectionでそれっぽく使うなり...
0892880
NGNGスレの皆さんにはあまり興味ないかもしれませんが事後報告です
問題のCSVファイルを881氏のを参考に試行錯誤してみたんですが
予想していた動きにならずおかしいなぁ・・・と思い、ファイルダンプしたら
FF FE 22 00 30 00 31 00 ・・・0A・・・と、成っており、どうやら
ファイルエンコードタイプ:UTF-18,リトルエンディアン,BOM付
改行コード:LF
というファイル形式になっていました
ファイルタイプの変更はAODというのを使うとうまくいきそうだという事で
あんまり良く分からないんですがファイル変換→保存できるコードを作ってみました
0893880
NGNGDim xlAPP As Application
Dim Stm1 As Object
Dim Stm2 As Object
Dim SourceFilePath As String
Const TITLE = "テキストファイル読み込み"
Const FILTER = "全てのファイル (*.*),*.*"
Const adLF = 10
Const adCRLF = -1
Const adReadLine = -2
Set xlAPP = Application
xlAPP.StatusBar = "読み込むファイル名を指定して下さい。"
SourceFilePath = xlAPP.GetOpenFilename(FileFilter:=FILTER, TITLE:=TITLE)
If StrConv(SourceFilePath, vbUpperCase) = "FALSE" Then Exit Sub
'UTF-16 の取込
Set Stm1 = CreateObject("ADODB.Stream")
Stm1.Open
Stm1.Charset = "UTF-16"
Stm1.LineSeparator = adLF
Stm1.LoadFromFile SourceFilePath
0894880
NGNGSet Stm2 = CreateObject("ADODB.Stream")
Stm2.Open
Stm2.Charset = "shift-jis"
Stm2.LineSeparator = adCRLF
Stm1.CopyTo Stm2
Stm2.SaveToFile SourceFilePath, 2
Stm2.Close
Stm1.Close
Set Stm2 = Nothing
Set Stm1 = Nothing
End Sub
達人なら、直接セルに割り振ったり出来るんでしょうが
当分の間、自分はまず変換保存してから再度読み込んで処理しようかと
0895デフォルトの名無しさん
NGNGどのような処理を行えば実現するでしょうか?
表形式のサブフォームをの内容をモジュールの方へ持ってこられればなんとでも出来そう
なのですが・・・。
どなたかお教え願えませんでしょうか?
0896デフォルトの名無しさん
NGNG『サブフォーム.列名』で習得できました。
しかしこの方法だと▲マークがあるところだけで全部の行を更新するには
手動でレコードを次にしてあげなくてはなりません。
DBのレコードはMoveNextで次の行に行ってくれると思うのですがモジュール上
にてサブフォームのレコードを次に移して上げるにはどのようにすればよいのでしょうか?
0897デフォルトの名無しさん
NGNGVBみたいにウィンドウ表示させたり、API関数使っていろいろできたりするんでしょうか?
0898デフォルトの名無しさん
NGNG出来ます。
0899865
NGNG0900デフォルトの名無しさん
NGNG0901デフォルトの名無しさん
NGNG最近VBAに目覚めたものです。
Sub データ行のあるところまで計算式挿入()
Range("c1", Range("c1").End(xlDown)).Select '3列目のデータ最終行のセルを選択
Selection.Insert Shift:=xlToRight '一列挿入
Range("c2").Formula = "=a2+b2" 'c2に計算式を入れる
Range("c2").Copy 'それをコピー
Range("c3", Range("c3").End(xlDown)).PasteSpecial 'Bのセル(Dのセルでもよい)のデータの最終行まで計算式を入れる
End Sub
としたら、その列の最終行(65536行)まで計算式がコピーされてしまいます。
どなたか、bのセルの最終行(行は任意、ケースバイケースで最終行が変わる)
方法をご教授していただきますよう、お願いします。
0902デフォルトの名無しさん
NGNGRange("c3", Range("c3").End(xlDown)).PasteSpecial
↓
Range("c3", Range("c65536").End(xlUp))).PasteSpecial
最終行から上に向かって飛ばす癖をつける方がいいよ。
データの入力された範囲を調べるのにもね。
つか、コピーしてから貼り付けんでも、一発でいれりゃぁいいと思うが。
Range("c2", Range("c65536").End(xlUp))).Formula = "=a2+b2"
0903902
NGNGたんま、よくコード見てなかった。
Selection.Insert Shift:=xlToRight '一列挿入
ここでC列がD列になっているんだから
Range("c3").End(xlDown)で最終行まで飛んであたりまえ。
だって、データがないんだもの。
0904901
NGNGさっそくのご回答ありがとうございます。
そうなんです。最終行まで飛んでしまうんです。
列を挿入して、(空白列に)一セルだけデータを入力し(ここまでは出来る
んですが)横のセルにはデータが入ってる最終行までデータを貼り付けする
のは無理なんでしょうか?
0905902
NGNGRange("c2", Range("D65536").End(xlUp)).Formula = "=a2+b2"
この2行ですむんじゃない?
0906901
NGNG丁寧なご回答ありがとうございます。
イメージ的には上の記述でいいのですが、これだと、隣のセル(d列まで)
計算式が入ってしまうんです。大変度あつかましいですが、
cの行だけデータを貼り付けする方法をよろしけれ教えてください。
0907902
NGNGDim n As Long
n = Range("C65536").End(xlUp).Row
Range("C1:C" & n).Insert Shift:=xlToRight
Range("C2:C" & n).Formula = "=a2+b2"
End Sub
これでどないでしょ。
0908901
NGNGバッチリできました!
大変助かります。ありがとうございました。
dim n as long ・・・と nの意味が分かりません。
とりあえず結果オーライとなりましたが、これからまた勉強します。
ホントVBAって面白いですね。
いままでハンドでちまちま入力していたのはなんだったんだろうか・・・・。
ともあれ、ありがとうございました。
0909902
NGNG変数の宣言
って質問してみましょう。( ̄ー ̄)
0910902
NGNGちょうどいま、変数のところを見て、なんとなく意味が分かった
ところです。as long は長整数型の数値型で変数を宣言することなんですね!
(マニュアルをそのまま引用してますが)
0911デフォルトの名無しさん
NGNGSub データ行のあるところまで計算式挿入()
Range("C1", Range("C65535").End(xlUp)).Select
Selection.Insert Shift:=xlToRight '一列挿入
Selection.Formula = "=a1+b1" '計算式を入れる
Range("C1").ClearContents 'C1はいらないので消す
End Sub
0912デフォルトの名無しさん
NGNGたぶんこれ。
ttp://www8.pekori.to/~zoma/cgi-ssi/meeting/artview.cgi?id=ac&num=4580&ope=v&page=1&asc=1
0913デフォルトの名無しさん
NGNG無理ならば罫線で囲まれたセルの数でもいいんですが、探しても見当たりませんでした。
知っている方教えてください。
0914デフォルトの名無しさん
NGNGこんなかんじでいかがでしょうか。セルを適当に選択してから試してみてください。
Sub test()
Dim x As Object, i As Long
For Each x In Selection
If x.Borders(xlBottom).LineStyle <> xlLineStyleNone Then
i = i + 1
End If
Next
MsgBox "罫線で囲まれたセルの数:" & i
End Sub
0915デフォルトの名無しさん
NGNG勿論表示は全て英語に置き換えます。
0916デフォルトの名無しさん
NGNG何のファイルが見つからないのかさっぱりわからないのですが。。
ちなみにエクセル97です。
0917デフォルトの名無しさん
NGNGそんなもん窓から投げ捨てろ
0918デフォルトの名無しさん
NGNGプログラムを作りたいんですが・・・
0919デフォルトの名無しさん
NGNGDim i As Long
Dim sum As Long
Dim c As Long
Dim cc As Integer
n = Range("A1").Value
Randomize
sum = 0
c = 100
cc = 3
For i = 1 To n
If (Rnd ^ 2 + Rnd ^ 2) < 1 Then
sum = sum + 1
End If
If (i Mod c) = 0 Then
c = c * 10
Cells(cc, 1) = i
Cells(cc, 2) = sum * 4 / i
cc = cc + 1
End If
Next i
If Cells(cc - 1, 1) <> n Then
Cells(cc, 1) = n
Cells(cc, 2) = sum * 4 / n
End If
0920デフォルトの名無しさん
NGNG設定できる文字列の長さって制限とかあるのでしょうか?
絶対参照で30セル分くらいのアドレスに名前をつけたいのですが
なにか制限ありそうな気がしてググったのですが見つかりません。
安心しても大丈夫なのかなぁ? 知っている方すみません教えてください
0921デフォルトの名無しさん
NGNGごちゃごちゃ抜かさんと試せ。
0922920
NGNG確かに、おっしゃるとおり。m(__)m
試したところ、260文字前後でアウトでした。(255文字?)
Unionもアドレスがこの文字数超えるとおかしくなっちゃうし、まいった。
みなさん、分散してならんでるセルを名前かなんかでハンドリングしたい場合って
どうされています?
0923920
NGNGループで回すとか、そんな感じになっちゃいますかね。。。
0924デフォルトの名無しさん
NGNGシート:先頭のシート
このシートに、ラベルやコンボボックスなどを並べた操作画面の
イメージがあります。この中から全てのラベルに書かれた文字列
を抜き出し、別のブックなりに一時的にそれらを書き出すには
どうしたらいいですか?
0925デフォルトの名無しさん
NGNGCells(行,列)で取得しているのですが、数値と判断されてただの1になってしまいます。
どうすれば文字列として扱うことができるでしょうか。
0926デフォルトの名無しさん
NGNGイメージからは抜くのは非常に難しい
文字認識エンジンを作れるなら別だが
>>925
Cells(行,列).Text
0927デフォルトの名無しさん
NGNG本日からExcel2000を使用してVBAを始めたのですが、
複数行選択したとき、値が選択した最初の行しか取ることができません。
どのようにすれば全ての値を取ることができるのでしょうか。
どうかよろしくお願いします。
0928デフォルトの名無しさん
NGNGDim rng As Range
For Each rng In Selection
rng.Value="Hoge"
Next rng
0929927
NGNG解決することができました。
大変助かりました。ありがとうございます。
0930925
NGNGありがとうございました。できました。
実は値を再び別のセルに挿入するプログラムだったのですが、
挿入時にも数値型に変換されてしまいました。
こちらは挿入時に"'"と文字列連結してから代入することによって解決しました。
あわせてご報告します。
0931デフォルトの名無しさん
NGNGそういう場合は下のコード使ったほうがいいんじゃないですか?
A1セルの値をA2セルへ入れる場合。
Range("A1").Copy Destination:=Range("A2") 'コピー
Range("A1").Cut Destination:=Range("A2") '移動
0932918
NGNGSet en = Range("C2:C6")
Set hit = Range("B2:B6")
Const z As Double = 3.14159265358
X = 5
For j = 0 To X
hit = 0
For i = 1 To 10 ^ j
If (Sqr((Rnd * 2 - 1) ^ 2 + (Rnd * 2 - 1) ^ 2)) < 1 Then
hit = hit + 1
End If
Next i
en(j) = 10 ^ j
en(j) = hit / 10 ^ j * 4
Next j
End Sub
このプログラムで円周率の値はでるのですが、このプログラムから
ヒット数をRange("B2:B6")につくりたいとおもいます。
どのようなプログラムが必要なのでしょうか?
力をお貸しください。
0933デフォルトの名無しさん
NGNG0934918
NGNGあ、ありがとうございます。
あともう一個質問させてください。
各シミュレーションが終了する度に(10回100回と)、
Msgboxを表示してシュミレーションを続けるかどうかを問い合わせる
ためにはどうすればいいでしょうか?
質問ばっかですいません
0935デフォルトの名無しさん
NGNG>>919
0936デフォルトの名無しさん
NGNGDim X(42) As Variant
Range(Sheet1.Cells(EGYO, 12), Sheet4.Cells(EGYO, 43)).Value = X(11 to 43)
43個の配列変数があって
そのうちの11〜42をセルに入れようと思って
X(11 to 42)
と、書いてみたんだけど無理なようです
やっぱり
Do LoopとかFor Nextで
一個一個入れないといけないんでしょうか?
0937デフォルトの名無しさん
NGNGDim X(42) As Variant
EGYO As Integer
中略
Range(Sheet1.Cells(EGYO, 12), Sheet1.Cells(EGYO, 43)).Value = X(11 to 42)
こんな感じになってます
0938デフォルトの名無しさん
NGNG重なっているかどうかを判定するような関数を書くにはどうやったら良いのでしょうか?
大量に値をプロットしてラベルを付けるとラベル同士重なって読めなくなってしまって…
適当に間引きしたいのです。
ラベルの topとleftと文字数で地道に計算する方法しか思いつかないのですが
なんか良いやり方ないでしょうか?
0939デフォルトの名無しさん
NGNGBのブックからAに作成してあるUserFormを操作する方法ってあるのでしょうか?
あればヒントだけでもよいので教えていただけないでしょうか。
0940デフォルトの名無しさん
NGNG0941デフォルトの名無しさん
NGNGCByte(expression)
CCur(expression)
CDate(expression)
CDbl(expression)
CDec(expression)
CInt(expression)
CLng(expression)
CSng(expression)
CVar(expression)
CStr(expression)
0942デフォルトの名無しさん
NGNG0943デフォルトの名無しさん
NGNG0944デフォルトの名無しさん
NGNGBのブックから、Aのブックを参照設定する。
0945デフォルトの名無しさん
NGNG<<Class Foo>>
Public Field_A as Long
Public Field_B as String
Public Field_C as Date
このインスタンスが詰まったコレクション Foos があったとします。
このコレクションをField_B, Field_C 等の好きなメンバでソートしたいのですが
どうやったらよいのでしょうか?
0946デフォルトの名無しさん
NGNGこういうのはADOとかにリンクさせて処理するもんなんでしょうか?
(確かにそのほうがラクそうだ)
0947デフォルトの名無しさん
NGNG表示しているシートを、VBAを使って
画像として保存することできますか?
0948デフォルトの名無しさん
NGNGウインドウハンドルからデバイスコンテキストを取得してそれの中身をビットマップファイルとして保存すればよいですよ。
0949947
NGNGありがとうございます。早速やってみます。
0950冷や水
NGNGOption Base 1
Sub Q1()
Selection.WholeStory
Selection.Delete
ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=4, NumColumns:=6
For K = 1 To 4
For J = 1 To 6
Selection.TypeText Text:="(" & K & "," & J & ")"
Selection.MoveRight Unit:=wdCharacter, Count:=1
Next J
Next K
End Sub
'上記によって4行6列のテーブルを Word2000 の Book1 に作表しました。
'この後、テーブルの2行目と3行目の欄は全て高さを30ミリに、また4列目と5列目の欄は全て横幅を15ミリに変更しようと思います。
'End Subの前に何を追加すべきでしょうか。どなたかご教示いただけると有難いです。
0951デフォルトの名無しさん
NGNG0952デフォルトの名無しさん
NGNG0953デフォルトの名無しさん
NGNG出来ましたがA1,C1,E1と3つあってA1だけ解除したいときE1も選択解除されてしまいます。
こういった場合はどうすればいいのでしょうか?何度もすいません。。
0954デフォルトの名無しさん
NGNG0955デフォルトの名無しさん
NGNGRange("C1,E1").Select
0956デフォルトの名無しさん
NGNGExcel2000でクリップボードのクリアをするVBAがわかりません。
マクロの記録をしても記録されないようです。
よろしくお願いします。
0957デフォルトの名無しさん
NGNGEmptyClipboard
0958デフォルトの名無しさん
NGNGDeclare Function OpenClipboard Lib "User32" (ByVal hwnd As Long) As Long 'クリップボードをオープン
'クリップボードを空にし、クリップボード内のデータのハンドルを解放
Declare Function EmptyClipboard Lib "User32" () As Long
Declare Function CloseClipboard Lib "User32" () As Long 'クリップボードをクローズ
'クリップボードクリア関数呼び出し 別にこれを呼び出さなくても直接CLR_ClipBoard "" でかまいません
Sub ClipCLR()
CLR_ClipBoard ""
End Sub
Function CLR_ClipBoard(myString As String)
Dim ret As Long
'クリップボードオープン
If OpenClipboard(0&) = 0 Then
GoTo ERR1
End If
'クリップボードクリア
ret = EmptyClipboard()
'クリップボードクローズ
If CloseClipboard() = 0 Then
GoTo ERR2
End If
Exit Function
ERR1:
MsgBox "クリップボードが開けません(エラー)"
Exit Function
ERR2:
MsgBox "クリップボードが閉じれません(エラー)"
Exit Function
End Function
0959デフォルトの名無しさん
NGNGひょっとして、VBAでブックを閉じる時に「クリップボードに大きな情報があります」
ってエラーを出さないようにしたいからですか?
0960デフォルトの名無しさん
NGNG入れることはできないんですか?
「.Text」だと書式のみになってしまいます。
0961デフォルトの名無しさん
NGNGこのあたりの事?
.Interior.ColorIndex = 6
.Interior.Pattern = xlSolid
0963デフォルトの名無しさん
NGNG明らかに違います。
0964デフォルトの名無しさん
NGNGといった、もしアクティブセルが空白だったら Exit Sub する
といったのを書きたいのですがどうしてもわからないので教えてくれませんか。
0965vba3週間目
NGNGIf Cells(*,*)<>""Then
じゃだめかな?
0966デフォルトの名無しさん
NGNGCells(*,*)といった形ではなく、SelectionかActiveCellを使いたかったんですが
一応、
If Selection.Value = " " Then でできました。
0967デフォルトの名無しさん
NGNG0968デフォルトの名無しさん
NGNGアクティブセルが対象だとして、条件書式の1番の色を拾うには
myColorIndex = ActiveCell.FormatConditions(1).Interior.ColorIndex
0969デフォルトの名無しさん
NGNGnaまで入力したら、何かキーを押すと補完してくれる、
という機能があったら教えて下さい。
0970デフォルトの名無しさん
NGNGのですが、「太字のみ」という処理がうまく出来ません。
教えていただけないでしょうか?
0971デフォルトの名無しさん
NGNGPublic Sub test()
Dim intSUM As Integer
Dim I As Integer
intSUM = 0
For I = 1 To 10
If Range("A" & I).Font.Bold = True Then
intSUM = intSUM + Int(Range("A" & I).Text)
End If
Next I
Range("A11") = intSUM
End Sub
0973デフォルトの名無しさん
NGNGJISコードをSJISに変換する関数とかってありますでしょうか?
0974デフォルトの名無しさん
NGNGCtrl + Space
0975デフォルトの名無しさん
NGNG◯( ´∀` )◯ < あけおめ!
\ / └────────────
_/ __ \_
(_/ \_)
lll
0976デフォルトの名無しさん
NGNG描くことってできるのでしょうか?
0977デフォルトの名無しさん
NGNG0978976
NGNG書く方法教えてください!!
0979デフォルトの名無しさん
NGNGなんの役に立つのかわっかていません。
どういうことに使うものなのでしょうか?
0980デフォルトの名無しさん
NGNGそんな質問ならPC初心者板でよかったやん
0981デフォルトの名無しさん
NGNGあなたが役に立たない人間だからだよ
0982デフォルトの名無しさん
NGNG自己紹介乙。
0983デフォルトの名無しさん
NGNG初心者板の人とは違います。
そこから来たのですけど
0984デフォルトの名無しさん
NGNGPC初心者板のくだ質の909、919に書いてあることを試してみるといいかもね
0985デフォルトの名無しさん
NGNGエクセルがとんでもないことになった。
VBAで嫌がらせができるという事がわかった
0986デフォルトの名無しさん
NGNGLineを使え。ヘルプを使え。
0987デフォルトの名無しさん
NGNGマクロウイルスなんてのも要る時代だ。
0988デフォルトの名無しさん
NGNG0989デフォルトの名無しさん
NGNG0990超初心者
NGNG別に表示させるにはどうすればよいですか?
0991デフォルトの名無しさん
NGNG鈍器
0992デフォルトの名無しさん
NGNG0993デフォルトの名無しさん
NGNG厚い本の使い道ではなく、VBAの使い道です。
0994デフォルトの名無しさん
NGNG0995デフォルトの名無しさん
NGNGほげほげ!
0996デフォルトの名無しさん
NGNGほげほげ!
0997デフォルトの名無しさん
NGNGほげほげ!!
0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。