1 :
名無しさん@そうだ選挙にいこう :
2007/04/28(土) 13:01:55 Excelに関する質問は、ここで!
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に
>>2-20 あたりの注意書きやQ&Aを必ず読むこと。
★4 質問テンプレ(雛形)は必須じゃないけど、
OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は必須情報。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード 】 Googleやヘルプでの検索キーワード
※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
VBAを使うのは避けたいって場合は「否」にしましょう。丸投げする場合は、必要に応じてブックをアップすること。
※【5】は、あなたがGoogleやヘルプで検索した際に使ったキーワードを書いてください。
まだ検索してないなら、質問の前にGoogleやヘルプで検索してみてください。
ttp://www.google.co.jp/ 前スレ(55):
http://pc11.2ch.net/test/read.cgi/bsoft/1174961523/l50
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━ ・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F) ・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意 ・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。何レス使っても構いません。 ・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。 ・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。 ・6 バグ・動作上の不都合・仕様に関する質問などはマイクロソフトのサポートを受けましょう。 ここは技術的な質問のみで。 ・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能で Excelに関係ないことも出来ます。 Excelの操作に関係ない部分は、スレ違いなのでここで聞かずにVB言語やAPI、COMについて自分で勉強し、 どうしてもわからない部分はVBスレやAPIスレなどの該当スレで質問しましょう。 但し向こうはプログラマのスレなので、構文規則などの最低限の事は覚えてから質問しましょう。 ここみたいに丸投げはダメですよ。 ・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。 例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。 その上で、どううまくいかないのかを具体的に書きましょう。 エラーが出るなら、何処でどういうエラーが出るのか、 想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。 ・9 マルチはダメ。一度マルチしたら、謝っても他のスレの質問を取り下げても回答は得られないと思ってください。 ・A テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、 チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、 ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。 ・B 書籍や解説サイトの紹介以来はスレ以外。ここは技術的な質問のみで。
★ルールを無視すると…
>>1-2 あたりのルールに従うか否かは自由だけど、従わないと以下のような不利益があるよ
1.マルチをしてしまったら…
A.謝っても他での質問を取り下げても、以後その質問に対する回答は付かない物と思ってください。
それが嫌なら初めからマルチなんてしないように。
>>2 にマルチ禁止と書いてあり、
マルチの意味が分からなければ検索すれば出てくるので、「知らなかった」は通用しません。
2.
>>1 ★4に従わず、必要な情報を出さないと…
A.自分の使用しているバージョンで使えない機能を答えられたり、VBA使えないとか使いたくないと書かないと
VBAでの解決OKで自分でコード書けるものと勝手に解釈されて、「VBAで出来るから自分でコード書いて」程度の
適当な回答を返されたりします。また、ここではVBAコード書けない人の丸投げ依頼を許可してますが
これはきちんとルールに従って質問、依頼した人のみの特権です。
3.情報・条件を後出しすると…
A.後から出された情報は意図的に無視されたり、質問自体を放置されたりします。
>>1 ★4の必須情報はもちろんのこと、要望や条件、既に試したことなどは、
長文になってもいいので詳細かつ明確かつ具体的に書きましょう。
★VBAについて
VBAとは、『Visual Basic for Application』の略で
Application
├Workbooks
|└Workbook
| ├Worksheets
| |└Worksheets
というApplication以下のオブジェクトを、VB言語で操作するものを指します。
例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法) ▼環境・書式 ・ 列数を256列以上、行数を65'536行以上に増やす (Excel2007では16'384列、1'048'579行扱える) ・ Excel2003以前で条件付き書式を3つ以上設定する (文字色だけなら、入力規則でも3つ設定可能。それ以外はVBA) ・ 行の高さを0.25きざみ以下の単位で指定する ・ セル内の文字を○で囲む、一部のみ2段にする (オートシェイプ、オブジェクト) ・ オートフィルタで英字の大小文字を区別する (小文字 → 半角、大文字 → 全角、と使い分ける) ・ 祝日を判断する (作業セルに祝日を列挙、VBA) ・ 同一列内でセル(行)ごとに列幅を変える、同一行内でセル(列)ごとに列高を変える (セルの結合) ・ ヘッダー・フッターのページ番号の開始番号任意指定、ページ番号演算、同シート内で違ったものを指定など ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する ・ 罫線幅の自由指定 ・ 表示形式で「10/ 1」といった書式を指定し、日付が一桁の場合のみ日付の前にスペースを入れる (TEXT関数、VBA) ・ 書式設定の「折り返して全体を表示する」と「縮小して全体を表示する」を同時に使う (折り返しを有効にして、手動で文字サイズを調整) ▼操作 ・ ファイラーの右クリックメニューからの新規作成で、Excelで設定したシート数のブックを作る (任意のシート数のテンプレートを作成) ・ 複数シートを選択して入力規則やシートの保護を設定する (VBA) ・ オートコンプリート機能を、別列や離れたセルで動作させる (VBA) ・ 選択範囲から一部を除く、Ctrlを押しながらの複数選択で一部を取り消す (VBA) ・ 優先キーを3つ以上指定しての並べ替え (優先度の低い方から順に並べ替える) ・ 1セルを分割 (分割したいセル以外を結合)
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法) ▼数式・関数 ・ 表示形式以外の書式の取得設定、書式情報を条件とする数式 (ユーザー定義関数) ・ 関数式でセルの選択状態を取得する (VBA) ・ セルの値でパスを補完して、開いてないブックのセルを参照する (VBA) ・ 入力したセルに結果を返す (VBA) ・ 範囲を引数にしての文字列連結 (ユーザー定義関数) ・ 値の書き換え、値の保持 (VBA) ・ 複数の結果を抽出、不定な数の結果を返す (VBA、結果の最大数が解っていれば最大数以上の式を論理式で組む) ・ 空白のセルの部分を上詰め、左詰めなどで表示する (作業セルを使って別セルに詰めて表示なら可能、それ以外はVBA) ・ VLOOKUP,HLOOKUP,MATCH等の関数で、検索語を全半角両方にマッチさせる (ユーザー定義関数) ▼VBA ・ ExecuteExcel4Macroの参照で空セルと0値を区別する ・ セルの値や変数値で直接変数名を指定する (配列、コレクション) ・ VBのコントロール配列と同じような操作をしたい (イベント以外ならコントロール名を「同名+連番」にしてControls(名前 & インデックス)で処理、イベントはクラスでWithEvents) ▼ユーザーフォーム ・ フォーム上から変更したプロパティ値の保持 (シートや外部ファイルに書き出して、次回読み込む) ▼グラフ ・ 棒グラフでひとつだけ突出したデータがあった場合に波線を入れて位置を合わせる (オートシェイプなどで見た目だけそうなるように弄る、別アプリでグラフを作り、オブジェクトとして挿入) ┌┐ 〜〜 ||
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。 間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。 Excel2007についても未確認な項目が多いので変更点が有ればご指摘下さい。 また、ここに書かれてないことでも、Excelで出来ないことはたくさんあります。 ここに書かれてないからといって必ず出来るはずだなんて思わないように。 >▼環境・書式 > ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する 補足 2007ではページレイアウトビューの表示時に限り、幅・高さともcm単位で表示され、 指定も同じくcm単位でできる。 ただし大元がインチ系なのでなかなかピタリの値は出ない。1cm→0.98cmのように 近い値に勝手に丸められる。
7 :
名無しさん@そうだ選挙にいこう :2007/04/28(土) 13:30:16
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】はい 【4 VBAでの回答の可否】 乳児レベル 【5 検索キーワード 】 関数 書式変更 関数計算の結果OKかNGかがセルに表示されるのですが NGの場合背景色を(ボタン等を押さなくても)赤に自動的に 変わるようにするにはどうしたらいいですか?
>1 乙でし! 前スレ998 計算値を使い回すならセルの書式設定で表示形式をいじろう。 見た目だけで良ければ =SUM(A1:A3)&"人" でおk >7 条件付き書式でおk
9 :
998 :2007/04/28(土) 13:45:37
10 :
名無しさん@そうだ選挙にいこう :2007/04/28(土) 16:26:47
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 生まれたてのバンビレベル 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 COUNTIF 複数 指定 COUNTIFで抽出する際に、2つの引数を検索条件に指定するにはどのように行えば良いでしょうか (複数条件という訳ではありません) 別々に抽出してSUMで合計だせば良いというのは分かるのですが、どうしても一つの式で出したいのです
11 :
名無しさん@そうだ選挙にいこう :2007/04/28(土) 16:28:04
表にデータを追加したら、そのデータを使ったグラフで 自動的に追加データを取り込んで表示する方法があれば 教えて下さい。 例えば、B1〜B10にデータがあり、 その10ケのデータを折れ線グラフで表示している時に B11にデータを入力したら、グラフが自動的に B1〜B11のデータの折れ線グラフに変わるという事です。
12 :
名無しさん@そうだ選挙にいこう :2007/04/28(土) 17:16:29
>>10 =COUNTIF(A)+COUNTIF(B)
or
=DCOUNT(C)
13 :
名無しさん@そうだ選挙にいこう :2007/04/28(土) 17:42:06
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 少し 【4 VBAでの回答の可否】 否 私は、基本的にVBA付きエクセルファイルを受け取ることが嫌いです。 しかし、自分ではVBAを使いデータ処理をしますが、調査もので人からデータを もらう場合は、プレーンなエクセルシートに入力フォーマットを作り配布します。 その後、自分の機械でVBAを使いデータ処理をします。 従ってVBA付きエクセルファイルをもらった時は、マクロを実行せずに、VBAエディター でコードを読んでから安全を確認しマクロを実行します。 しかしこの前、国の農林水産省から送られてきたエクセルの調査様式には驚きました。 VBA付きエクセルファイルなのでいつものように、VBAエディターを立ち上げました。 そしたら「パスワードを入れてください」とほざきました。 5分ほどなやみ、やむなくマクロを実行しました。 その後のファイルを見ると、どうもそのマクロはあえてVBAを使うほどのものとも 思えないのですが、そこで質問です。 パスワードで保護されたVBAコードを読む方法は無いでしょうか? もちろんVBAコードはリードオンリーで結構です。
>>13 モラルの無い奴は来るな。勝手に調べろ!!
16 :
名無しさん@そうだ選挙にいこう :2007/04/28(土) 18:00:23
>13 詐欺師みたいな文章だな
>>14 >>15 禿同(w、モラルはちょとわかんない。
でも、俺もパスワードVBAエクセルファイルはやだな。
▼━過去スレを見たい人━━━━━━━━━━━━━━━━
o2onで気長にまってたら落ちてくるかも。
o2on・・・2chのdatファイルを共有するP2Pソフトです。
現段階ではまだαバージョンですので、マターリいきましょう。
公式サイト
ttp://o2on.net/wiki/
どなたか助けてください。VBA初心者なんですが、下記コードの 修正お願いします。 やりたい事、(G2:H200)から文字を検索して同じ文字を(I2:J200)から探します。 同じ文字が見つかった場合は、その下の行に数字が入っているので差額をM列に挿入したいです。 ・文字と数字はセットになっているので、文字は2行おきにあります。 ・空白の場合は無視します。 ・G2:H200の文字より下の行にI2:J200の文字はあります。 Private Sub Worksheet_Calculate() Dim 次の文字列 へAs Long Dim 買い行 As Long Dim 買い列 As Long Dim 売り行 As Long Dim 売り列 As Long For 次の文字列へ = 1 To 100 For 買い行 = 2 To 200 Step 2 For 買い列 = 9 To 10 If Cells(買い行, 買い列).Value = "" Then Next 買い列 Next 買い行 Else For 売り行 = 買い行 + 2 To 200 Step 2 For 売り列 = 7 To 8 If Cells(売り行, 売り列).VALUE <> (買い行, 買い列).Value Then Next 売り列 Next 売り行 Else Cells(売り行, 13) = Cells(買い行 + 1, 買い列) - Cells(売り行 + 1, 売り列) End If End If Next 次の文字列へ End Sub
>19 次の文字列へ は意味がわからんので削除 Sub hoge() Dim 買い行 As Long, 買い列 As Long, 売り行 As Long For 買い行 = 2 To 200 Step 2 For 買い列 = 9 To 10 If Cells(買い行, 買い列) <> "" Then For 売り行 = 2 To 200 Step 2 If Cells(売り行, 7) = Cells(買い行, 買い列) Then Cells(売り行, 13) = Cells(買い行 + 1, 買い列) - Cells(売り行 + 1, 7) If Cells(売り行, 8) = Cells(買い行, 買い列) Then Cells(売り行, 13) = Cells(買い行 + 1, 買い列) - Cells(売り行 + 1, 7) Next 売り行 End If Next 買い列 Next 買い行 End Sub
>>19 Sub oioi()
Dim 買い行 As Long
Dim 買い列 As Long
Dim 売り行 As Long
Dim 売り列 As Long
Dim I As Long
I = 2
Range(Cells(2, 13), Cells(200, 13)).ClearContents
For 買い行 = 2 To 200 Step 2
For 買い列 = 9 To 10
If Cells(買い行, 買い列).Value <> "" Then
For 売り行 = 2 To 200 Step 2
For 売り列 = 7 To 8
If Cells(買い行, 買い列).Value = Cells(売り行, 売り列).Value Then
Cells(I, 13).Value = Cells(売り行, 売り列).Value
Cells(I + 1, 13).Value = Cells(買い行 + 1, 買い列).Value - Cells(売り行 + 1, 売り列).Value
I = I + 2
End If
Next
Next
End If
Next
Next
End Sub
>>20 >>21 返信大変遅くなりすみませんでした。
親切に作ってくれてほんとにありがとうございます。
連休中いい事あるように祈っています。
23 :
名無しさん@そうだ選挙にいこう :2007/04/29(日) 22:34:32
グラフ作成で、右縦軸と左縦軸でスケールの違うグラフって作れないのでしょうか? 例えば、右の軸は温度、左の軸は湿度、とかにして温度と湿度の折れ線グラフを同じグラフに表示する、 といったことです。 裏ワザでもかまいませんし、 他のソフトで簡単にできるようなものがありましたら、教えていただきたいのですが。
>>23 右側の軸にスケールを表示させたいデータを選んでプロパティから第2軸を選択するだけ
25 :
名無しさん@そうだ選挙にいこう :2007/04/29(日) 23:24:33
【1 OSの種類 .】WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 幼稚園レベルまで 【4 VBAでの回答の可否】 可 エクセルで作成した内容をメールの添付ファイルにし 同時にメールの件名・文面の作成することは出来ますか? お手数ですが教えてください
26 :
名無しさん@そうだ選挙にいこう :2007/04/29(日) 23:33:50
何方かご存知の方お願い致します。 エクセル(MS-Excel2000)で作成した棒グラフをWEBページで保存し、この グラフをgif画像として取り出そうと考えております。 問題は、39,999という値の時に40,000の罫線にグラフが掛かってしまう という事なのです。これを40,000まで罫線に掛からないように調整 する事は可能でしょうか?ちなみにこのグラフの最小値は0で最大値 は50,000、罫線は10,000ごとに引かれています。
>>26 値が近すぎてグラフの大きさによっては重なるんだろうな
39,999を表示させて実際は違う値を入力するとか、
そのあたりを調節できる別のソフトで作るとかだな
>>26 思うに、罫線ではないと思う。目盛り線だな
数値が微妙なんだから諦めろ
またはデータラベルをグラフに表示させて40,000でないことを強調するかだな
29 :
名無しさん@そうだ選挙にいこう :2007/04/30(月) 00:24:41
質問です。お願いします。 Excelで減価償却費をだしたいのですが、定率法(DB)だと月を入力できるので 最初の年と最後の年の半端な分を計算してくれるのですが、 定額法(SLN)だと月を入力できず、正しい値がでてきません。 何かいい方法はありますか?最初と最後の年は手作業で入力するしかないのでしょうか… 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 減価償却 月 定額法
なんだかよくわからないけど12で割るんだ
貧乏くせーな会計ソフト使えよ
>>29 定額法に月?
計算式晒さないと答えようが無いね
セルをダブルクリックする(→セルの内容を編集できる状態にする) という操作のショートカットキーって無いんですか?
折れ線グラフの色って自分で選べるの?
グラフの原点からオートシェイプで線をひく方法ってありますか? ぴったり原点からひきたいんですが・・・
折れ線グラフの“折れ線”ごとにその名前を入れたいのですが、 データラベルを入れると、値ごとにデータの系列名が入ってしまい、 グラフがうるさくなってしまいます。 折れ線に1個だけ系列名の名前を添えたいだけなのですが、何かいい方法あるでしょうか?
>>41 画面を拡大してやれば、かなり不器用な人でもピッタリ合いますが。
>>42 テキストボックス
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel*2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 数字に変換 , ダウンロードしたデータが3桁置きに半角カンマ「,」が入っています。 そのデータをオートサムで計算しようとしても出来ません。 で、セルの書式で数値&カンマをはずすにしてもカンマが取れません。 で、カンマをはずして数値を再入力すると計算してくれます。 データ元が手入力でカンマを入れているのかなと予想しているのですが、 自動でカンマを取るorオートサムで計算できるようにならないでしょうか? データ元の数値は桁数がバラバラです。
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel*2003 【3 VBAが使えるか .】 ほとんどいいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 マクロ 自作 VBA, 自分で記録・作成したマクロをVBA上で指示して実行することはできるようですが、具体的な方法などが 載っているサイトなどありますでしょうか。 シートAでコマンドボタンを設置して、それをきっかけにシートBでマクロを実行したいのですが、そこらへんも VBA上できっちり記述しなければならないんですよね?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 名前をつけて保存 コマンドボタンを押すと、D4の文字列を参照して、それをファイル名にして現在のファイルを保存したいと思います。 どのようなコードを組めばいいでしょうか? Private Sub CommandButton4_Click() ファイル名 = Range("d4").Value ActiveWorkbook.SaveAs _ filename:=ファイル名&".xls" End Sub こう書いてみましたが上手く動きません。どこが違うのでしょうか?
>>52 普通に保存できるな。
念のため&の前後にスペース入れてみ。
54 :
47 :2007/04/30(月) 21:28:01
>>48 IE上で、クリックするとエクセル画面に切り替わるHPです。
そこからセルをコピーして貼り付けています。
表現がちょっと悪かったですね。
>>54 どういうケースか分からないですが(私の場合は問題ないみたい)、
桁区切りを使用するのチェックは外れていますか?
又、数式バーにはどういう風に表示されているのでしょうか?
56 :
47 :2007/04/30(月) 21:57:20
>>56 コピーした数字が「文字列」になってるんぢゃないの?
表示形式で確認してごらん。
>>56 できますよ
数字は文字列かテキスト形式なので数値に変換しないとだめですが…
>>57 数値にしてカンマをなくすにチェックをつけても計算してくれないんです。
何故でしょうか?
60 :
56 :2007/04/30(月) 22:22:54
>>59 ありがとうございます。
足し算とかだとできました。
オートサムは相変わらずダメです。
私の設定がなにか悪いんでしょうね・・・・・・
>>60 漏れの2003だからなぁ…2000ってどうっだか忘れてますので…
2003だと文字列として保存されている数値は教えてくれて修正してくれんるんですよ
62 :
56 :2007/04/30(月) 22:28:25
オートサムを縦方向で計算するとできました。 横方向だと0になります。 なぜなんでしょう?
>>62 文字列が含まれているから?
こちらでは問題ありません
>>62 Excel2000は一旦文字列で確定された数値は表示形式を数値とかに変更しても文字列のままです。
数値に変換するには該当セルを編集するなど一手間かける必要があります。
(例えばセルを選択してF2を押してENTERを押すなどです。)
B1=(A1+A2+A3)とかであれば文字列でも数値と見なせる物は足してくれますが、
B1=SUM(A1:A3)だと無視されます。
65 :
62 :2007/04/30(月) 23:37:23
>>64 ありがとうございます。
そういう理由だったんですね。
こんな詳しい解説、感謝です。
勉強になりました。
>>53 ありがとうございます。うまくできました。スペースも大切なんですね。
ところで、今このワークブックがあるフォルダに名前をつけて保存をしたいのですが、現状どこに保存してるのかよくわからない
状況になっています。
パスというかフォルダを同じ場所に指定したい場合、どのような記述をすれば良いのかわかりません。
どなたかご存じないですか?
>>66 ThisWorkBook.Path & "\" & ファイル名
68 :
66 :2007/05/01(火) 11:13:03
>>67 ありがとうございます。これを
>>52 のコードに仕込めばいいわけですか?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel ? 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 2段リスト 多段リスト リストを使って品物を入力したいのですが、普通のリストだと量が多く探すのがめんどうです。 リストを多段にできれば早いと思ったのですが、多段リストは作れるのでしょうか? 例えば、↓のようなリストがあったとしたら、 A10 A20 A30 B10 B20 B30 C10 C20 C30 D10 D20 D30 ↓このように選択できるようにしたいです。 A B →C→C10 D C20 C30
71 :
70 :2007/05/01(火) 14:41:28
excel2002です。
72 :
70 :2007/05/01(火) 16:08:44
入力規則とINDIRECTを使ってなんとなくそれっぽいのは出来たのですが、 これを1つのセルに入力することはできませんか?
73 :
名無しさん@そうだ選挙にいこう :2007/05/01(火) 19:21:59
以下の文がシートが1枚だったときは動いていたように思うのですが3枚目のシートになったら、 「オブジェクト変数またはwithブロック変数が設定されていません」となり、中断します。 setをどうかすればいいのでしょうか。丸投げで教えてください。 Dim rg As range → rg = range("c7:y41")
>>73 Set rg = Sheets("Sheet1").Range("c7:y41")
75 :
名無しさん@そうだ選挙にいこう :2007/05/01(火) 21:45:59
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】断面図 いくつかの地点の水温を水深10メートルくらいまで測ったときのデータがあるとき、 断面図を描くにはどのようにすれば良いですか?
>>77 手書きですか?グラフとして出ないですか?
3D縦棒グラフ?
うーん、等高線で作ってそう見えるように回転
回転いらねーや・・・
83 :
73 :2007/05/02(水) 00:21:33
Dim rg As range とvbeで書いているのにrangeのrが何故か、Rにならずじまいです。 どうしてこうなるのかわかりませんので、原因を教えてください。 このためだと思うのですが、 Set rg = Sheets("Sheet1").Range("c7:y41") は「インデックスが有効範囲にありません」 とのエラーが出て、配列として認識されているようにあります。
84 :
名無しさん@そうだ選挙にいこう :2007/05/02(水) 00:32:13
初歩的な質問ですまん。 エクセルを開いた時、
85 :
名無しさん@そうだ選挙にいこう :2007/05/02(水) 00:33:54
初歩的な質問ですまん。 エクセルの初期設定はどうやるんですか?
>83 ありがちなのがタイプミスで、こんな短い文で間違えようがないだろ というところにミスがあったりします。(例 vbe それか「dim rg as 」までタイプすると出てくるリストから選んでみたら?
>>85 ユーザー登録を真っ先にやれ
話はその後だ
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 集計 for 合計 データから集計という機能があると思うのですが、 集計の機能をマクロで実行したいのですが、 どうやったらいいですか? forを使って、ループ回して、配列に入れて…、 などをやると思うのですが、スキルが追いつかず うまくできません。
90 :
名無しさん@そうだ選挙にいこう :2007/05/02(水) 11:49:40
VBAでコマンドボタンなどのオブジェクトのセル番地を取得する方法、ありませんか?
91 :
名無しさん@そうだ選挙にいこう :2007/05/02(水) 14:46:35
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 少し 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 画像 挿入 名前 【6 検索サイト 】 すぐマク 質問させていただきます。 マクロで画像を挿入する際の記述に関する事です。 フォームにテキストボックスが用意されていて、コマンドボタンでそこに入力したファイル名の 画像を挿入及び、画像の名前をファイル名と同一に変更。を実行したいのです。 例えば挿入された画像の名前を変えるには ActiveSheet.Shapes("Picture 1").Name = "変えたい名前" と書くまでは判ったのですが、以下の挿入時マクロの4行目にはどう書けば良いのでしょうか? Private Sub CommandButton1_Click() mypicture = TextBox1.Text ActiveSheet.Pictures.Insert("保存先" & mypicture).Select '挿入した画像(図形)の名前を mypicture に設定する記述 End Sub また「選択されたセル」=ActiveCll の様に、「選択された画像」はどう書けば良いのでしょうか? 宜しくご教示お願い申し上げます。
92 :
名無しさん@そうだ選挙にいこう :2007/05/02(水) 16:40:40
【1 OSの種類 .】 Windows2000SP4 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 ちょっと 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 * 「5.05**」「7.48*」「9.09」「4.87**」のように、「数字+半角アスタリスク(ありなし)」という セルが連なっています。 このうち「*」のみを「上付き」に変更したいのですが、どうすればよいのでしょうか。 「~*」にして置換すると、*のみでなく、セル全体が上付きになってしまいました。
93 :
名無しさん@そうだ選挙にいこう :2007/05/02(水) 20:39:32
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 二項分布 エクセルの関数に関する質問です。 個別項の二項分布の確率を求めるために二項分布で検索したところ、以下の関数が出てきました。 BINOMDIST(成功数, 試行回数, 成功率, 関数形式) これに各数値を入力(以下の式をセルに入力)しましたが、#NUM!と表示され数値が求められません。 =BINOMDIST(188,26644,0.00887311,FALSE) 成功数 < 0 または 成功数 > 試行回数 である場合、エラー値 #NUM! が返されます。 成功率 < 0 または 成功率 > 1 である場合、エラー値 #NUM! が返されます。 とヘルプにありますが、入力した数値がエラーの出る範囲のものではないのでこれ以外にも入力する数値に制限があるのでしょうか? どうすれば正しい計算結果が表示されるのでしょうか?
94 :
ごぶりん :2007/05/02(水) 21:40:55
【1 OSの種類 .】 WindowsXP pro 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 複写 質問:三平方の定理の計算で1列をベースに↓へ複写していくと見た目では間違っていないはずの計算で”False”と出てくる。その原因を知りたいです A B C D E F G H A2+0.03 A2^2 C2+0.04 C2^2 B3+D3 F2+0.05 F3^2 E=G ←2行目の計算式 垂辺 垂辺の二乗 底辺 底辺の二乗 二乗の和 斜辺 斜辺の二乗 E=G 3.00 9.00 4.00 16.00 25.00 5.00 25.00 TRUE 3.03 9.18 4.04 16.32 25.50 5.05 25.50 TRUE ←この行をすべて下方へ複写する 3.06 9.36 4.08 16.65 26.01 5.10 26.01 TRUE 3.09 9.55 4.12 16.97 26.52 5.15 26.52 TRUE 3.12 9.73 4.16 17.31 27.04 5.20 27.04 TRUE ・・・省略 3.60 12.96 4.80 23.04 36.00 6.00 36.00 TRUE 3.63 13.18 4.84 23.43 36.60 6.05 36.60 TRUE 3.66 13.40 4.88 23.81 37.21 6.10 37.21 TRUE 3.69 13.62 4.92 24.21 37.82 6.15 37.82 FALSE 3.72 13.84 4.96 24.60 38.44 6.20 38.44 FALSE 3.75 14.06 5.00 25.00 39.06 6.25 39.06 FALSE 3.78 14.29 5.04 25.40 39.69 6.30 39.69 FALSE
96 :
ごぶりん :2007/05/02(水) 21:44:52
1列をベースに →1行をベースに 確認ではずれていなかったが、結果ずれてしまった。 連スレ申し訳ない。訂正でした
97 :
93 :2007/05/02(水) 21:53:38
>>94 演算誤差だな、内部では2進数で計算するから目で見て同じでも微妙に違う
計算結果をROUND関数に通すか
整数のみ使うか
オプションの計算方法で表示桁数で計算する
99 :
名無しさん@そうだ選挙にいこう :2007/05/02(水) 23:41:27
すいません。 エクセルをしてたときにキーを押し間違えて画面が横向き になってしまい、エクセルを消してもモニタ画面まで 横向きになってしまいました。一度パソコンの電源を 落としたのですがそれでも戻ってません。直しかたを教えてください。 お願いします。
>>99 それ、Excel が原因じゃないから
ビデオカードのドライバーの設定・・・ホットキー辺りにローテイトってあるだろ。それだよ
101 :
名無しさん@そうだ選挙にいこう :2007/05/03(木) 02:21:49
excelのマクロ機能を使って、進捗管理を行うテンプレートなどありますでしょうか? やりたいこと ・資格試験勉強の管理が目的 ・5教科ある項目の勉強の進捗を管理したい ・どの程度遅れているか、いつから、どのような教科の勉強をしなくてはならないかのスケジューリング ・進捗具合が一目で分かる表示などが出来るとなお良い。 ・図として表示まで入らないけれど、クリティカルパスが設定できるとうれしい(5教科の効率よい順序だて) こんな感じです。 よろしくお願いします。
102 :
73=83 :2007/05/03(木) 02:50:18
>73 :名無しさん@そうだ選挙にいこう :2007/05/01(火) 19:21:59
> 以下の文がシートが1枚だったときは動いていたように思うのですが3枚目のシートになったら、
> 「オブジェクト変数またはwithブロック変数が設定されていません」となり、中断します。
> setをどうかすればいいのでしょうか。丸投げで教えてください。
> Dim rg As range
> → rg = range("c7:y41")
>74 :名無しさん@そうだ選挙にいこう :2007/05/01(火) 20:07:43
>
>>73 > Set rg = Sheets("Sheet1").Range("c7:y41")
>83 :73:2007/05/02(水) 00:21:33
> Dim rg As range とvbeで書いているのにrangeのrが何故か、Rにならずじまいです。
> どうしてこうなるのかわかりませんので、原因を教えてください。
> このためだと思うのですが、
> Set rg = Sheets("Sheet1").Range("c7:y41") は「インデックスが有効範囲にありません」
> とのエラーが出て、配列として認識されているようにあります。
>87 :名無しさん@そうだ選挙にいこう :2007/05/02(水) 09:04:51
> >83
> ありがちなのがタイプミスで、こんな短い文で間違えようがないだろ
> というところにミスがあったりします。(例 vbe
> それか「dim rg as 」までタイプすると出てくるリストから選んでみたら?
リストでやってみても、何をやってみても大文字が必ず、小文字に変換されてしまいます。
他のパソコンで試していますのでタイプミスはないです。原因に心当たりがあるとすれば
もう、5行のtipを貼り付けた後にこの現象が起こりだしたようだというぐらいしかないです。
何か対処方法をお願いします。
>>102 開いてるブック(個人用マクロブック含む)の何処かで
Public range As range
みたいな感じで誤定義されてるだけじゃないのか?
105 :
名無しさん@そうだ選挙にいこう :2007/05/03(木) 09:02:36
とりあえず使いたいからexcel買おうとおもってんだけど2003でいい? それとも97とかでもいいの? ただの練習用です
>>105 今から買うなら2007にしといたほうがいいかもしれんぞ。
2007とそれ以前とでインタフェースがまるで違う。
ただ、以前のバージョンよりメモリが必要だが。
2003以前なら97でも2000でも2002でも2003でも
基本的なところは変わらん。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】いいえ 【4 VBAでの回答の可否】 全く× 【5 検索キーワード 】 セルの設定書式 セルの設定書式→パターンで、セルの色を変えようとしているのですが、 その色パレットのデフォルト色がいつの間にか、全く様変わりしておりました。 マウスのポインタを新しく出来てしまった色の上に乗せると、ポップアップで は「配色」と表示されています。 元のデフォ状態に戻すにはどうすれば良いのでしょうか? それと、新しく自分の意図通りの色を作る(新しいパレットを作る)事なんて 出来るのでしょうか?よろしくご教授願います。
>>107 とりあえずデフォに戻すなら、ツール>オプション>色で「リセット」
「変更」ボタンを使えばパレットをいじることも可能
ただしブック内で同時に使える色は56色までで変わりなし。
109 :
107 :2007/05/03(木) 11:34:59
>>108 さん
ご回答ありがとうございます。
とりあえず、新規で立ち上げた場合のパレットはデフォに戻ったのですが、
ずっと記録してきたデータに関しては、そのリセットがうまく行かない
状態です。新規のデータに、古い方のデータをコピペしてみたのですが、
そうすると折角リセットしたパレットが元のめちゃくちゃな状態に
なってしまいました。(やはりリセットも効きません)
新しいデータにしこしこと手打ちするわけにもいかず、困ってます。
また、この状況を脱するための方法をどなたかご教授願います。
セルのデータを並び替えたいのです。つまり、 ABCD あいうえ ↓ あA いB うC えD と、いう風にしたいのですが。こんな機能ってありましたっけ?
コピー → 形式を選択して貼り付け で 縦横を入れ替えて貼り付けたあと 列を移動する。
>>109 なにかデータが壊れているような気もするし、保障はできないので
必ずバックアップコピーを取ってから試してみてくれ。
正しいパレットが表示されるブックと、おかしいパレットが表示される
ブックの両方を開く。
おかしいパレットが表示されるブックでツール>オプション>色
「コピー元ファイル名」で正しいパレットが表示されるブックを選択
OKをクリック
これで戻らなければ俺にはわからん。
簡単な質問なのですが ctrl+クリックの逆で 選択範囲の中から一つずつ除くには ctrl+?+クリックなのでしょうか? いろいろ押してみたのですができませんでした。
逆は無い、そのまま
エクセルのツールバーやらボタンやらを色々自分仕様に変えたのですが MOS受けるにあたって標準に戻したいのです。 再インスコ以外で戻る方法ありますでしょうか?
ユーザーフォームを作って顧客管理の名簿を作りたくて ヘルプやグーグルで0からやってみたんですが 全然出来ません・・・ ここで間違いを指摘してもらう事はお願い出来ますか? もし教えてもらえるなら コードをコピペしたいと思います (長いし全く始めて挑戦したのでかなりみずらいと思うのですが・・・) スレ違いならどこで聞けばいいか教えて下さい
>>116 ツール>ユーザー設定>ツールバーで「リセット」
一括リセットはできないので、ツールバーごとにこつこつやる
つーかMOS受けるくらいの意思があるなら、
こんなところで質問せず自分で調べてみたまい
>>117 ここで答えが得られる保証は無いが
とりあえず長いならコピペするな
別のところに「うp」して場所を知らせろ
>>119 さん
ありがとうございます!
今 うPする方法探してました
メールの返信が来たら
それの場所をはればいいんですよね?
おまいがうpする所はメールで返信されるのか?
122 :
名無しさん@そうだ選挙にいこう :2007/05/04(金) 13:26:37
イメピタじゃないの?プゲラ
どこまでうpしに逝ったんだ?
124 :
名無しさん@そうだ選挙にいこう :2007/05/04(金) 14:50:48
浜松まで
125 :
名無しさん@そうだ選挙にいこう :2007/05/04(金) 19:24:50
お知恵を貸してください。 下の問題をエクセルのソルバーを使って解きたいのですが、 工作機械の条件指定に行き詰ってしまいました。バイナリを指定して、、 といろいろ試しているのですがソルバーでイフ関数やマックスが使用できないのでそこから先に進めません。 どうかよろしくお願いします。 -------------------------------------------------------------- 製品I〜IIIの3つの製品ラインナップがあり、それぞれのデータは下記の通り。 ・製品I:収益: \12,500 ・製品II:収益: \12,000 ・製品III:収益: \3,000 製品Iを生産するのに印刷機器(\800,000)と切断機(\1,200,000)が新しく必要で、 製品IIを製造するには製品Iに必要なものと同じ切断機を購入しなければならない。 会社の人員数や、市場のサイズから当面販売できる上限は5,000個とする。 最も利益が大きくなる生産量の組み合わせを考えよ。
>125 まず出題先がどこか言えよ 賞品それとも賞金どっちがでるんだ
127 :
名無しさん@そうだ選挙にいこう :2007/05/04(金) 23:17:26
>>126 エクセル講座上級(すいません、解けなくてw)の宿題っす。
どうやってわざわざソルバーを使えばいいんだろう?
変動費が書かれていないが、原材料+人件費=0 でよいのかな? [答] 印刷機器と切断機を買って製品Iだけ作ればよい。
130 :
名無しさん@そうだ選挙にいこう :2007/05/04(金) 23:45:29
馬鹿ばっかだな
131 :
117 :2007/05/05(土) 00:12:28
すいません・・・ 見つけられないうちに 来客でこんな時間になってしまいました_| ̄|○ il||li うP場所教えて下さい・・・
133 :
117 :2007/05/05(土) 00:21:34
134 :
117 :2007/05/05(土) 00:25:26
すいません DLはaaaaです
>>134 おぅ、この拡張子は.xlsでいいのか?
136 :
117 :2007/05/05(土) 00:34:51
はい エクセルです
137 :
名無しさん@そうだ選挙にいこう :2007/05/05(土) 00:37:12
>>136 まぁ俺のチンカスついたちんぽしゃぶってくれるか
139 :
117 :2007/05/05(土) 00:43:51
>>138 さん
はい わかってるんですが・・・
全く知識のないとこからやってみたので
すいません・・・
140 :
117 :2007/05/05(土) 00:48:31
やっぱり かなりおかしな感じなんでしょうか? みなさん すいません・・・ 1件1件入力していった方がいいでしょうか・・・
141 :
名無しさん@そうだ選挙にいこう :2007/05/05(土) 00:49:16
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 形式を選択して貼り付け、値 お世話になります 例えば、A1に12345.9、B1に12309.6と入力し C1に=A1-B1と言う式を入力します この場合、C1には36.3と表示されます その後、C1の内容をコピーしてD1に形式を選択して貼り付けを行います 貼り付け内容は貼り付けの値を選択します <それ以外は選択しません するとD1にも当然ですが36.3と表示されます しかし、D1を選択し、数式バーで内容を確認すると 36.2999999999993となっており 計算結果が間違えています A1,B1に入力される数字によって 間違いが起こる場合とそうでない場合があるようです 解決方法を教えてください よろしくお願いします
142 :
名無しさん@そうだ選挙にいこう :2007/05/05(土) 00:59:09
>>140 フォームを表示させるのはThisWorkbookモジュールに
Sub workbook_open()
住所録.Show
End Sub
でおk
残りは自分でなんとかするか、超暇で超親切な人が現れるのを待て
これ全部修正するのはめんどくさすぎる
ここまでやったのなら参考書買えよ
145 :
117 :2007/05/05(土) 01:06:34
>>144 さん
ありがとうございます
がんばってみます・・・
やっぱり基本から勉強した方がいいですよね・・・
146 :
名無しさん@そうだ選挙にいこう :2007/05/05(土) 01:08:34
147 :
109 :2007/05/05(土) 01:11:07
>>112 さん
>
>>109 >なにかデータが壊れているような気もするし、保障はできないので
>必ずバックアップコピーを取ってから試してみてくれ。
この手法でも直りませんでした。
でも、おかしくなっていたデータを別なノートPCで開いてみると、
色パレットはごく普通のデフォ状態でした。
…PCによってファイルの色パレットが変わる事なんてあるんだろうか…。
謎だ。
149 :
名無しさん@そうだ選挙にいこう :2007/05/05(土) 02:51:48
>>129 ご回答ありがとうございます。
変動費の部分ははしょって書いてしまいました。
問題が意味をなさないですよね。。
え〜、一晩考えて分かってきたのでもう一度整理してから質問させてもらいます。
>>149 ソルバーを使う以前に、数式を明確にしておかなければ解けないよ
151 :
141 :2007/05/05(土) 09:34:28
>>143 レスありがとうございます
解決の糸口が見えてきました
152 :
名無しさん@そうだ選挙にいこう :2007/05/05(土) 10:25:20
オートサムのように特定の関数をツールバーに表示させたいのですが どうやればいいのでしょうか?
154 :
名無しさん@そうだ選挙にいこう :2007/05/05(土) 13:19:27
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 作業日報の残業手当ての計算式なのですが、 1人が残業時給1100で3人が1050円あと全員1000円で、A31:A40の範囲に特定の 名前が入れば残業手当が記入されるようにしたいのです。 現在の計算式が =IF(E31="","",IF(H31="","",IF(A31:A40="名前",1100*HOUR(H31)+1100/60*MINUTE(H31),1000*HOUR(H31)+1000/60*MINUTE(H31)))) これに1050円の人をいれてみたのですが、エラーでヘルプを見てもどうにもなりませんでした。 よろしくお願いします。
155 :
名無しさん@そうだ選挙にいこう :2007/05/05(土) 14:01:17
>>154 式は共通で時給が変わるだけなんだから、
名前と時給の別表を作り、式中の時給の部分にVLOOKUP関数を
当てはめればいい
>>154 別表なしをベタで書いたら文字数制限で蹴れられた・・・orz 実際はコレを1行に繋げて使う。
=IF(OR(A31="",E31="",H31=""),"",IF(ISERROR(VLOOKUP(A31,{"名前1",1100;"名
前2",1050;"名前3",1050;"名前4",1050},2,0)),1000*H31*24,VLOOKUP(A31,{"名
前1",1100;"名前2",1050;"名前3",1050;"名前4",1050},2,0)*H31*24))
157 :
154 :2007/05/05(土) 14:44:01
=IF(E31="","",IF(H31="","",IF(VLOOKUP(A31,AJ2:AK5,2,FALSE)*HOUR(H31)+VLOOKUP(A31,AJ2:AK5,2,FALSE)/60*MINUTE(H31),1000*HOUR(H31)+1000/60*MINUTE(H31)))) こういう風にしてみましたが、時給1000円のほうでしか計算してくれません><
158 :
154 :2007/05/05(土) 14:48:55
>>156 さん
できました、ありがとうございます!
159 :
名無しさん@そうだ選挙にいこう :2007/05/05(土) 16:13:31
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 10日でおぼえるVBA入門の4日目 【4 VBAでの回答の可否】 可です。 下記の2つのお願いを一緒に書いた時、エラーが出ないようにしたいんです。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Const rng As String = "C9:AG9,C12:AG12" '利用した日 If Application.Intersect(Target, Range(rng)) Is Nothing Then Exit Sub If Target.Value = "" Then Target.Value = "☆" Else Target.ClearContents End If Cancel = True End Sub Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Const rng As String = "C10:AG10,C11:AG11,C13:AG13,C14:AG14" '朝食と夕食 If Application.Intersect(Target, Range(rng)) Is Nothing Then Exit Sub If Target.Value = "" Then Target.Value = "○" Else Target.ClearContents End If Cancel = True End Sub よろしくお願いします。
>>159 取り敢えず組み合わせてみた
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Const rngR As String = "C9:AG9,C12:AG12" '利用した日
Const rngS As String = "C10:AG10,C11:AG11,C13:AG13,C14:AG14" '朝食と夕食
If Not Application.Intersect(Target, Range(rngR)) Is Nothing Then
If Target.Value = "" Then
Target.Value = "☆"
Else
Target.ClearContents
End If
Cancel = True
ElseIf Not Application.Intersect(Target, Range(rngS)) Is Nothing Then
If Target.Value = "" Then
Target.Value = "○"
Else
Target.ClearContents
End If
Cancel = True
End If
End Sub
161 :
159 :2007/05/05(土) 16:58:50
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Exce 2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 Beta版は削除したのに右クリックとかの新規作成メニューで Excel2007ブックという項目が残っています。 どうすれば削除できますか? レジストリ触らないと無理ですか?
163 :
名無しさん@そうだ選挙にいこう :2007/05/07(月) 02:33:26
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 否 【4 VBAでの回答の可否】 否 すみません エクセルで000666というパスワード数値を入力したいのですが 666になってしまいます セルの書式設定みてもどれにしていいかわかりません よろしくお願いします
166 :
名無しさん@そうだ選挙にいこう :2007/05/07(月) 05:34:48
本当にありがとうございました
>>162 > レジストリ触らないと無理ですか?
当然でしょ。レジストリに値が残ってる故に表示されるんだから
消すにはレジストリ弄らないとねぇ。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 使えません 【4 VBAでの回答の可否】 否 エクセルどころか、WINDOWSもほとんど使えない状態で 一からエクセルを覚えていくのにお勧めの書籍ってありますか?
171 :
名無しさん@そうだ選挙にいこう :2007/05/07(月) 11:37:25
172 :
169 :2007/05/07(月) 11:49:01
>>170 読み落としていました,
スレ汚し申し訳ありません。
173 :
名無しさん@そうだ選挙にいこう :2007/05/07(月) 15:11:14
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 使えません 【4 VBAでの回答の可否】 否 ExelやWordに張り付いたグラフをグラフとしてのデータを破棄して オブジェクトとして貼り付けるにはどう操作すればいいのですか? 後からグラフをダブルクリックで編集できないようにしたいのです。
>>173 コレで良いかな?
グラフエリアを選択してSHIFTを押しながら編集をクリック
図のコピー(外観とサイズはお好みで)→OK
貼り付ける場所を選択
SHIFTを押しながら編集をクリック
図の貼り付け
コレで図として貼られるから元データをいじってもグラフ(の画)は替わらないハズ
175 :
173 :2007/05/07(月) 17:31:15
>>174 おおこれです
SHIFTでメニューバーが変わるとは
ありがとうございました
176 :
91 :2007/05/07(月) 18:11:12
自己解決しました。 フォームのコマンドボタン部分の記述を下に記しておきます。 Private Sub CommandButton1_Click() If TextBox1 = "" Then MsgBox "配置した際の画像名を入力して下さい", vbOKOnly, "画像名指定エラー" Exit Sub End If myimagename = TextBox1.Text myimage = Application.GetOpenFilename(FileFilter:="画像ファイル(*.jpg),*jpg", Title:="画像の選択", MultiSelect:=False) If myimage <> False Then Range("B5").Select ActiveSheet.Pictures.Insert(myimage).Select Selection.Name = myimagename End If End Sub テキストボックスにファイル名を入力するのではなく、ダイアログボックスを表示させる方式にしました。 「選択された画像(図形)」の記述も、"Shape"を使う物とばかり思い込んで、答えに辿り着けなかったようです。
177 :
162 :2007/05/07(月) 18:43:04
Excel2003 OS XP PRO マクロ不可 合計のシートにある =4月!$A$! ってのを 他のシートに移すとき、4月の部分を5月にすべてひとまとめで5月に変える方法は無いでしょうか? また、シート名、ファイル名をワークシートに抜き出す方法は無いでしょうか? 最後に、ワークシートに書かれたファイル名やシート名に直接アクセスする方法は無いでしょうか。 作業用のセルを作っておいてINDIRECTを使って最初の質問をやろうとしたらうまくいきませんでした。
>>178 1個目
範囲選択して編集>置換
編集文字を4月!$
置換文字を5月!$
2個目
VBA使わんと無理じゃない?
3個目
挿入>ハイパーリンク
>>179 レスありがとうございます。
それだとセルに含まれてる他の同じ文字列も置き換えられてしまわないでしょうか。
182 :
名無しさん@そうだ選挙にいこう :2007/05/08(火) 08:28:48
別のフォルダにあるセルの値を関数で持ってくる方法はありますか? ハイパーリンクができるかと思いましたがうまくいきません バージョンは2002です
>184 フォルダ2つ開いてセルに”=”マウスで 2つ目のフォルダの任意セルをクリック
DBnumって「でぃーびーなむ」って読めばいいんでしょうか?
だぶるばいとなんばーず
188 :
名無しさん@そうだ選挙にいこう :2007/05/08(火) 19:05:18
"100"ごとに桁をかえないで、"60"ごとに次の桁へかえられるようにグラフ設定をすることは可能ですか?? 時計と同じく60進数で。。。 857、858、859、900、901、902ってな感じでグラフを作りたいのですが。。。
189 :
名無しさん@そうだ選挙にいこう :2007/05/08(火) 19:37:14
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 駆け出し 【4 VBAでの回答の可否】 可 Exelを起動したときに特定のシートの特定のセルをアクティブにするにはどう書いたらいいのでしょうか? Private Sub Workbook_Open() ’output A1へ移動 Sheets("output").Select Range("a1").Select 'シートを開いたらフォームを表示 frm入力フォーム.Show End Sub ↑こういう風に書いたのですが反応がありませんでした 常にフォームを表示されるようにして直接セルを編集できないようにしたいのですが右上のバツボタンでフォームを消せてしまいます バツボタンがないフォームって作れないのでしょうか? Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'シート上の選択セルを移動した時フォーム表示 frm入力フォーム.Show End Sub Private Sub tbx品番_Change() '該当セルを選択 Sheets("input").Select Range("C6:E6").Select 'テキストボックスの内容を反映 Selection = tbx品番 End Sub バツ消す方法思いつかなかったので消してもすぐ出るようにしようと思いこういう風に書いたのですが 実行時エラー'400’フォームは既に表示されているのでモーグル表示することは出来ません ってエラーがでて止まってしまいます。
191 :
名無しさん@そうだ選挙にいこう :2007/05/08(火) 21:31:27
FOX★公認!!!
俺たちのクリックで日本を一位にしようぜ!!
“30年は日本に手は出せないな”という勝ち方をしたい
http://wwwww.2ch.net/test/read.cgi/news4vip/1178602852/ 1. ポーランド 139,797,680
2. チリ 137,040,439
3. ★日本 86,475,213★
4. イスラエル 80,930,530
5. スロベニア 57,137,042
6. フィンランド 40,857,499
石を投げる戦争から人は進化・進歩を遂げ、剣や槍などの武器をもって戦うようになった
人間はさらに発展し兵器を使う戦争を始めた
そして今、指先一つを武器とした電脳戦争が勃発したのであった・・・
皇国を勝利へと導くには貴様らの参戦が不可欠である
・戦場
http://www.clickclickclick.com/default.asp ・まとめサイト
http://www33.atwiki.jp/clickvip/
>>188 出来ないことはないけど、元データの加工が必要かと思われる。
それでも良ければ解決策の一例を提示するけど、OK?
194 :
名無しさん@そうだ選挙にいこう :2007/05/09(水) 00:50:17
Book1 のシート1を形式含め全て丸ごとコピーして Book2 のシート1にペーストしたいのですが、 形式までコピーされず苦しんでいます。 どうすれば良いでしょうか?
196 :
名無しさん@そうだ選挙にいこう :2007/05/09(水) 02:52:07
winxpsp2 excel2003 グラフの凡例が2つあるグラフで、凡例の一つだけを消しました。 しかし、後になってやっぱり2つにしておこうと思い復活させようとしたんですが どうやればいいのか分かりませんでした。 アドバイスお願いします。
>>195 シート名の所で右クリックしてシートごとコピーしたらどうなんだ?
198 :
189 :2007/05/09(水) 07:28:08
>>194 両方解決しました
ありがとうございました
>>196 グラフオプション>凡例>凡例を表示するチェックボックスを消す>OK
>グラフオプション>凡例>凡例を表示するチェックボックスをつける>OK
>>178 >また、シート名、ファイル名をワークシートに抜き出す方法は無いでしょうか?
ファイル名
MID((CELL("filename")),(SEARCH("[",(CELL("filename"))))+1,(SEARCH("]",(CELL("filename"))))-(SEARCH("[",(CELL("filename"))))-1)
シート名
RIGHT((CELL("filename")),(LEN(CELL("filename")))-SEARCH("]",(CELL("filename"))))
以前はこの式、テンプレに貼ってあったよね。
excel2003です。 関数の中に関数を入れようとする(ネスト)時、 2個目の関数を、fxボタンやメニューの関数の挿入で入れようとするのですが そうすると最初の関数が立ち上がってしまうのですが、 2個目の関数式は手で関数式を入力するしかないのですか。 ボタンやメニューから入力することはできないのですか。
ネスト覚えたら関数はベタ打ち出きるようになろう
>>202 203に同感だけど、数式バー上で内側の関数部分をクリックしてから
fxボタンを使えば、内側の関数に対応した「関数の引数」ボックスが出る。
205 :
204 :2007/05/09(水) 14:55:52
あ。編集じゃなく最初に打つ場合か。 悪い。204は忘れてくれ。
203への回答にはならんが、コレ2007だとできるんだな。 2個目以降はfxボタンではなく、関数ライブラリのボタンで 個別に関数を選ぶことになるが。
アンカー間違えたのかな
× 203
○
>>202
208 :
名無しさん@そうだ選挙にいこう :2007/05/09(水) 17:48:05
209 :
名無しさん@そうだ選挙にいこう :2007/05/09(水) 20:14:56
WindowsXP Excel2003 VBAはわかりません、不可で御願いします。 質問です。 例 項目A 120 項目A 411 項目B 32 項目B 125 項目B 29 項目C 9 以下大量に続く 各項目別に集計だしたい(項目Aの値、項目Bの値等)のですが どうやればよいでしょうか?
>>208 検索せずにスレ立てする奴に対しては、どんな配慮も無意味
「スレタイ検索してもエクセルスレが無かったので立てました」ではなく
検索もせずに立てられてる単発質問スレだからな
>>209 DSUMって使えなかったっけ? 俺は使った事はないんだけど。
212 :
名無しさん@そうだ選挙にいこう :2007/05/09(水) 20:54:46
>>211 レスありがとうです。臆せず試してみます。
別にDSUMやらピボットテーブルを使うまでもなく、 項目をキーに並べ替えてから、 データ>集計とやればいい話だと思うんだけど。
>>214 いちいち回答をする前に他人の回答にケチを付ける理由がよく分からないんだが。
使える、使えないの判断は質問者がすべきことで、お前がどうこういうものじゃない。
データ集計が、DSUMやピボットテーブルと比べて絶対的に便利だという根拠が
あるなら別だが。
216 :
名無しさん@そうだ選挙にいこう :2007/05/09(水) 21:44:16
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 駆け出し 【4 VBAでの回答の可否】 可 Private Sub btnA_Click() '変数の宣言 Dim 不良数P As Long '不良数Pの計算 不良数P = tbxB * tbxC + tbxD - tbxE Range("FF!G25").Activate ActiveCell = 不良数P tbxBからEのテキストボックスに入力された数値をボタンAを押すことで計算させてFF!G25に出力ってのを作ったのですが tbxBからEのテキストボックスがどれか1つでも空欄だった場合はその空欄は0とみなして計算する処理をさせたい場合どうすればいいですか?
217 :
名無しさん@そうだ選挙にいこう :2007/05/09(水) 21:48:57
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 関数、返り値 よろしくお願いします。 セルに任意の値を入力すると、隣のセルなどにその値に対応した値が自動に入力される方法を教えてください。
>>217 例をあげてくれ
対応した値ってのがよくわからん
219 :
名無しさん@そうだ選挙にいこう :2007/05/09(水) 21:52:25
【1 OSの種類 .】 Windows98 XP 【2 Excelのバージョン 】 Excele色々です(会社PCの為各バージョン有り) 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 検索・色 50行5列程の各セルに8桁程度の数字が入っています。検索である8桁数字 を検索した時にその数字と同じセルの色をその検索時だけ分かりやすく 色つきに変えたいのですがどうすればいいでしょうか? よろしくお願いいたします。
>>219 書式>条件付書式
で指定した数値の場合色をつけるって指定する
221 :
名無しさん@そうだ選挙にいこう :2007/05/09(水) 21:59:56
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 駆け出し 【4 VBAでの回答の可否】 可 フォームに入力された数値が全角だった場合でも シートには半角で出力させたいのですがどういう風に書けばいいですか?
222 :
217 :2007/05/09(水) 22:01:52
>>218 説明不足ですみません。
シート2に
A a-001
B b-001
C c-001
という表を作りました。
シート1のあるセルに「A」を入力すると、指定したセルに「a-001」と自動的に表示されるようにしたいのですが。
224 :
名無しさん@そうだ選挙にいこう :2007/05/09(水) 22:10:11
>>220 ありがとうございます。検索時のみ色を変え、次々と検索する必要が
あるのですが条件付書式では出来るのでしょうか?
>>202 関数を入力中は、エクセル画面左上(ツールバーの上書保存ボタンの下あたり)
に▼ボタンが出るっしょ?
それをクリックすれば幸せになれるよ。
227 :
217 :2007/05/09(水) 22:37:18
>>223 ありがとうございます。調べてみたらできました。お世話になりました。
228 :
名無しさん@そうだ選挙にいこう :2007/05/09(水) 22:52:40
>>216 Private Sub btnA_Click()
Dim 不良数P As Long, A(3) As Long
If tbxB <> "" Then A(0) = tbxB
If tbxC <> "" Then A(1) = tbxC
If tbxD <> "" Then A(2) = tbxD
If tbxE <> "" Then A(3) = tbxE
不良数P = A(0) * A(1) + A(2) - A(3)
Sheets("FF").Range("G25").Value = 不良数P
End Sub
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 少々 【4 VBAでの回答の可否】 可 タブ区切りのテキストで保存するとダブルコーテーションが勝手に付くセルがあるんです。 そのセルの書式をいろいろ変えてもやっぱり付く ただ、セルをコピーしてメモ帳開いて貼り付けると付かない・・ VBAでクリップボードにコピーしたものを、そのままテキスト保存することは できますか?
エクセル2003を使っているのですが質問があります。 セルに数式を入れるとその結果が表示されますが、それを数式を表示させるようにしたいのです。 オプションで数式を表示するようにもできますが、それではなく既に数式を入力済のいくつかのセルだけ その右のセルにでも入力したいのです。 コピー先のセルの書式を文字列にした上で、数式をコピー等をしてみたのですがうまくいかず結果が表示してしまいます。 関数でもいいので教えてください
>>230 数式の先頭「=」の前に「'」をつけると数式が文字列扱いになる
>>231 a1:a100に既に数式がいろいろはいっているのですが(当然表示はその数式の結果)
その数式を結果ではなくて数式でb1:b100に表示させたいのです。
表示が数式になってるが、実際の中身は結果というのでも構いません。
とにかく左のセルの数式を右のセルに表示したいのです。
a1 b1
1 15 =c1*c2
2 1/15 =today()
のような。
説明下手で吸いません。
下の表のa1 b1はa bと間違えました
234 :
202 :2007/05/10(木) 00:09:14
>>225 有り難うございます。
2000でやってみたらできたのに、何でできなくするのかなあ?
マイクロソフトは時々わからんことする。
>>203 関数はある程度覚えてきたけど、2つも3つも引数がある関数は…ヽ(`Д´)ノ
>>232 質問用のテンプレを使ってくれてないせいで分からないんだが、
VBAでの回答はOKなの、ダメなの?
遅いですが書きました 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 ほとんど不可 【4 VBAでの回答の可否】 可 VBAは勉強したてでほとんど分かりませんが 参考までに教えてもらえるとうれしいです。 コードをコピーして実行くらいはできます。 それと関数等ではできないと思っていいのでしょうか?
>>232 だから数式をコピーして先頭に「'」を付ければ良いだけだろ?
俺も「'」を入れるやり方を使うな a b 1 15 =A1 2 1/15 =B1 って感じでb列をオートフィルして置換で=を'=にすれば一気に置き換わるだろ VBAでも簡単に出来るが上の方法の方がもっと簡単
>>240 質問内容もう一回見直してみろ。
それから、お前の回答した手順で要件通りのことが出来るか試してみろ。
Sub cpi() Dim i As Long For i = 1 To 100 Cells(i, 2).Value = "'" & Cells(i, 1).Formula Next i End Sub 式をコピーして行頭に「'」を入れる。 これぢゃダメなのか?>236 >238
>>228 なるほど変数に変えてしまうわけですね
ありがとうございました
244 :
名無しさん@そうだ選挙にいこう :2007/05/10(木) 09:02:03
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 駆け出し 【4 VBAでの回答の可否】 可 フォームの中のコンボボックスのプロパティのStyleで fmStyleDropDownListにして手入力できないようにしたのですが Tabキーでしか次項目へ飛ばなくなりました。 手入力できない状態でENTERキーを押せば次項目へカーソルを移動させるようには出来ないのでしょうか?
245 :
名無しさん@そうだ選挙にいこう :2007/05/10(木) 11:37:11
>>232 >>236 エクセル技道場(
http://www2.odn.ne.jp/excel/index.html )より
マクロでユーザー定義関数を作成します。
1.Alt+F11 (メニュー[ツール]-[マクロ]-[VBE])
→VBEが起動
2.メニュー[挿入]-[標準モジュール]
→プロジェクトエクスプローラに[Module1]といった形で
標準モジュールが追加/[Module1]のコードウィンドウが右に表示される。
3.コードウィンドウに以下のコードを入力
Function 数式表示(Rng As Range) As String
数式表示 = Rng.Formula
End Function
4.上記手順を行った後、ワークシートで例えば、以下のように入力します。
=数式表示(A2
>>242 >>245 解答ありがとうございました
今確かめることができないのですが、方法があるようなので助かりました。
ちなみに
>>238 は私ではないのであしからずw
>>246 Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A1:A100")) Is Nothing Then
Target.Offset(, 1).Value = "'" & Target.Formula
End If
End Sub
>>244 コンボボックスのKeydownイベントに
If KeyCode = 13 Then オブジェクト名.SetFocus
とかじゃダメなん?
249 :
名無しさん@そうだ選挙にいこう :2007/05/10(木) 15:33:05
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 項目、合計、文字列、種類 A 1 りんご 2 みかん 3 みかん 4 おれんじ 5 いちご 6 いちご 7 りんご 8 いちご 9 4(種類) A列に上のように入力されていた時、その項目の種類の合計を数えたい。 上の場合、項目は「りんご」「みかん」「おれんじ」「いちご」の4種類なので、 A9に「4」と表示させるにはどうすればいいのか教えてください。
250 :
名無しさん@そうだ選挙にいこう :2007/05/10(木) 17:42:27
>>249 B列に B1=IF(COUNTIF(A$1:A1,A1)>1,0,1)
この式をB8までコピー
B列の合計を計算:A9=SUM(B1:B8)
251 :
249 :2007/05/10(木) 18:14:04
>>250 ありがとう!
同じようなものが100列以上続くので、作業用シートを作ってやってみます。
252 :
名無しさん@そうだ選挙にいこう :2007/05/10(木) 18:58:30
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 カウント、文字列、複数条件 A B C 〜 BB BC 〜 1 札幌 函館 〜 札幌 函館 〜 2 札幌 関東 関西 〜 中部 中部 〜 3 函館 関西 中部 〜 中部 関西 〜 4 青森 関西 関東 〜 関西 関西 〜 5 秋田 関西 関西 〜 関東 関西 〜 6 岩手 中部 関西 〜 関西 関西 〜 〜 データはB2:II300にあります。 調べたいのは、例えば2行目「札幌」の行で、1行目が「札幌」の時に 「関東」は何個あるかです。同様に1行目が「函館」や「青森」の場合も・・・ これを各行単位でカウントするにはどうすればよいですか?
253 :
名無しさん@そうだ選挙にいこう :2007/05/10(木) 19:42:44
>>252 =SUM((B$1:II$1=$A2)*($B2:$II2="関東"))
上の式をCtrl+Shift+Enterで確定してコピー
>>248 KeyCodeって便利なものがあるんですね
うまく動作しました。ありがとうございました
256 :
名無しさん@そうだ選挙にいこう :2007/05/11(金) 00:02:02
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】はい 【4 VBAでの回答の可否】 駆け出し 【5 検索キーワード 】 EXCEL VBA マスタ 編集 フォーム コンボボックス 作業者がシートを直接いじれないようにするために全てフォーム上で入力するようなものを作っています 作業者がフォーム上でマスタ登録してコンボボックスで選ばせる物を作ったのですが 作業者が間違ったマスタ(例えばAAAの品番なのにAABと入力してしまったなど)を入力してしまい、 そのことに気づいた作業者が直そうと考えた場合どうさせたらいいでしょうか? シート上で直接書き換えれば簡単なのですが作業者にそれをさせたくないのです 構想がまったく思いつかなくて調べようがなく困っています よろしくお願いします
入力確定前に確認を取る 再入力用にインターフェースを作る Excelと関係ないな・・・
年賀状ソフトとか使ったことないわけ?
ないっ!
>>256 たとえば、セルのダブルクリックで
入力フォームを表示して、新たに入力させるとか。
>>256 君の質問はExcel云々ではなく、アプリのデザインの話だ。
申し訳ないが、スレの趣旨から逸脱してる。他を当たった方がいい。
262 :
名無しさん@そうだ選挙にいこう :2007/05/11(金) 10:30:34
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 駆け出し 【4 VBAでの回答の可否】 可 コンボボックスのプロパティでfmStyleDropDownListにして手入力不可にしているのですが キーボードをコンボボックス上で入力すると押されたそれに近い文字の入った項目が自動で選ばれてしまいます。 この自動で選ばれる機能をOffにするにはどうすればいいですか?
263 :
262 :2007/05/11(金) 10:42:32
プロパティいじり回したら項目見つけました fmMatchEntryNone 2でいけました
264 :
名無しさん@そうだ選挙にいこう :2007/05/11(金) 12:02:55
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 少し 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 ActiveSheet.CheckBoxes.Select シートに貼り付けたいくつかのチェックボックス(それぞれ違うセルに設置)のうち、 指定したセル(チャック外しラジオボタンから見て右1下1など)にあるチェックボックスだけを選択したいのですが ActiveSheet.CheckBoxes.Select では、すべてのボックスが選択されてしまいます。 どう記述すればよいのでしょうかm(__)m
Worksheets("Sheet1").Checkbox1.value = True
>>265 何か違うようです。
まずCheckbox1というのが何を指しているのか分かりません。
そしてもしそれが直接チェックボックスの名前(貼り付けた順番?)を指しているとしたら方向性が違います。
ラジオボタンもチェックボタンもシートに貼り付けてまして、そして
現在選択しているセル(そこにはラジオボタンが存在)から、
右にいくつ、下にいくつの場所にあるセルにあるチェックボックスを操作したい、ということです。
複数のシートのD7を配列もしくは範囲指定して Index関数で処理したいのですが、どういう風に記述すればいいのでしょうか? =Index(`Sheet1:Sheet2`!D7,1,1) などとしてみましたがダメでした ヨロシクお願いします
topleftcellで総当たりかな
Excel 2007 で上書保存するだけで所有権の取得権限が無いユーザが 所有権を乗っ取れるのは既出?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はじめたばかり 【4 VBAでの回答の可否】 可 笑っちゃうような質問で申し訳ありません。 Private Sub CommandButton3_Click() Cells(7, 3).Select Selection.Font.Color = 3 End Sub コマンドボタンを押すとセルの文字の色が変わる、というマクロを組むためにまず実験として本に載っている マクロをほぼそのまま写しました。 これを実行しても、7,3のセルがアクティブになるだけで、フォントの色が変わりません。赤になるはずらしいのですが・・・。 何がおかしいのでしょうか・・・? (ためしに手動でフォントの色を変えてみたところ、マクロの動作後黒のフォントに戻りました。???です。)
それはおそらく ColorIndex だ
272 :
270 :2007/05/11(金) 14:42:25
あ!本にもそうかいてありました。 ありがとうございます。うひゃー、はずかしぃー。
273 :
264 :2007/05/11(金) 15:37:05
うーんやっぱりできません。
やりたいことは
>>266 に書いた通りなんですが、
ActiveSheet.CheckBoxes.value = True では、シート上のすべてのチェックがTrueになってしまいますよね。
'ラジオボタンにつけたマクロの一部
Cells(Application.Caller).Select 'これでラジオボタンのセルをセレクト
Me.Cells(row + 1, column + 2).Select 'ラジオの右右下に配置しておいたチェックのあるセルをセレクト
この後に、現在セレクトいるセルにあるチェックを外す、という作業は出来ないでしょうか。
現在のシートのチェックボックス達のうち、現在セレクトしているセルにあるチェックボックスの.value = True
みたいな感じのです。
>>273 あなたは、昨日初心者スレで質問した人?
>>273 お前が判らないものを俺達が解るわけない。
set a = selection.address for each o in activesheet.checkboxes if o.topleftcell.address = r then o.value = false next
277 :
264 :2007/05/11(金) 18:02:35
>>274 はい、(厳密に言うと違うのですが)そうです。
あちらで受けたアドバイスで進めることにしたのは私の同僚でして、
私は汎用性がなくても、ひとまず最初の方法で任意のチェックが外せることを確認したいです。
>>277 恐らく、「フォーム」のチェックボックスのことを述べていると推測して。。。
チェックボックスを右クリック>コントロールの書式設定>「コントロール」タブ
の"リンクするセル"に特定のセルを指定する。
例えばそのセルがA1だとすると、チェックが入っているならA1に「TRUE」と表示される。
あるボタンのアクションでそのチェックボタンのチェックを外す場合は
Sub aaa ()
ActiveSheet.Range("A1").Value = False
<シートを指定する場合は、WorkSheets.("シート名").Range("A1").Value = False>
End Sub
というコードを書いて、ボタンを右クリック>マクロの登録で登録してやればよい。
279 :
264 :2007/05/11(金) 18:20:14
>>278 うおお、ありがとうございます。たった今コントロールツールとフォームの違いを習いまして(つд`;)
そうです、フォームです。
これでやってみます。
そして、おそらくセルをコピーしたときに
>チェックボックスを右クリック>コントロールの書式設定>「コントロール」タブ
>の"リンクするセル"に特定のセルを指定する。
で、ズレが出てくると思うので($をつけなければ相対になるかな?)
そしたらまた考えて見ます。
280 :
252 :2007/05/11(金) 18:25:22
>>254 そんな使い方があったんですね。
ありがとう。
281 :
名無しさん@そうだ選挙にいこう :2007/05/11(金) 23:44:46
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はじめたばかり 【4 VBAでの回答の可否】 可 マクロを作ったのですがどんなバグによるエラーがでても msg boxを出してExcelを終了するにはどうしたらいいんでしょうか? ようはデバッグモードに入りたくないのですが全てのsub 〜 end sub に挟まったマクロに On Error GoToを書き込むしかないのですか?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 はじめたばかり 【4 VBAでの回答の可否】 可 日付のセルが条件によってフォントの色や背景色が変化するマクロを書いています。 【表】 (1) もとになる日付(G3:AK3)と曜日(G4:AK4) (2) 任意で入力された土日以外の休業日(AO1:AS1) (3) "う"と任意で入力されているその他の条件(G2:AK2) (4) (1)と同じ日付(G9:AK9)と曜日(G10:AK10)が入力されている 【マクロ実行】 (1)で土日なら同じ列の(4)のフォントの色が赤(Font.ColorIndex = 3) (2)に表示された日付と(1)が同じものがあれば(4)のフォントの色が赤(Font.ColorIndex = 3) (3)に"う"と入力されたセルと同じ列の(4)の背景色が水色(Interior.ColorIndex = 34) 書いていてやたら長いマクロになってしまいました。簡潔な記述方法を教えて下さい。
283 :
282 :2007/05/12(土) 11:32:47
Sub aaa() Dim i As Long For i = 7 To 37 If ((Weekday(Cells(3, i)) = 7) Or (Weekday(Cells(3, i)) = 1)) And (Cells(2, i) = "う") Then Cells(9, i).Font.ColorIndex = 3 Cells(10, i).Font.ColorIndex = 3 Cells(9, i).Interior.ColorIndex = 34 Cells(10, i).Interior.ColorIndex = 34 ElseIf ((Cells(3, i) = Range("AO1")) Or _ (Cells(3, i) = Range("AP1")) Or _ (Cells(3, i) = Range("AQ1")) Or _ (Cells(3, i) = Range("AR1")) Or _ (Cells(3, i) = Range("AS1"))) And (Cells(2, i) = "う") Then Cells(9, i).Font.ColorIndex = 3 Cells(9, i).Interior.ColorIndex = 34 Cells(10, i).Font.ColorIndex = 3 Cells(10, i).Interior.ColorIndex = 34
ElseIf Cells(2, i) = "う" Then Cells(9, i).Interior.ColorIndex = 34 Cells(10, i).Interior.ColorIndex = 34 ElseIf (Weekday(Cells(3, i)) = 7) Or (Weekday(Cells(3, i)) = 1) Then Cells(9, i).Font.ColorIndex = 3 Cells(10, i).Font.ColorIndex = 3 ElseIf ((Cells(3, i) = Range("AO1")) Or _ (Cells(3, i) = Range("AP1")) Or _ (Cells(3, i) = Range("AQ1")) Or _ (Cells(3, i) = Range("AR1")) Or _ (Cells(3, i) = Range("AS1"))) Then Cells(9, i).Font.ColorIndex = 3 Cells(10, i).Font.ColorIndex = 3 End If Next i End Sub
285 :
282 :2007/05/12(土) 11:35:40
>>281 簡単な方法で一発で解決したい(ごまかしたい)という質問に見受けられるが、
そもそも論で言えば、設計段階からエラーハンドリングを適切に考慮した
プログラムなら、こんな議論が出てくること自体がない。
「動けばいい」という意識でどんどんコードを書いちゃうと、君のような問題に
頭を悩ませるようになる。設計する、という意識だけでも持つべき。
287 :
名無しさん@そうだ選挙にいこう :2007/05/12(土) 13:17:40
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 駆け出し 【4 VBAでの回答の可否】 可 印刷プレビューから印刷ボタンを取り除くか プレビューから印刷処理を行った後にイベントを実行するように するにはどうすればいいでしょうか?
>>282 試してないし、やりたい動作と一致してるかわからんがとりあえず提示
Sub test()
Dim i&, FontColor&, BackColor&, Week&
For i = 1 To 37
'フォント色チェック
Week = Cells(3, i)
If Week = 7 Or Week = 1 Or ((Cells(3, i) = Range("AO1")) Or _
(Cells(3, i) = Range("AP1")) Or _
(Cells(3, i) = Range("AQ1")) Or _
(Cells(3, i) = Range("AR1")) Or _
(Cells(3, i) = Range("AS1"))) Then
FontColor = 3
Else
FontColor = 1
End If
Cells(9, i).Font.ColorIndex = FontColor
Cells(10, i).Font.ColorIndex = FontColor
'背景色チェック
If Cells(2, i) = "う" Then
BackColor = 34
Else
BackColor = xlNone
End If
Cells(9, i).Interior.ColorIndex = BackColor
Cells(10, i).Interior.ColorIndex = BackColor
Next
End Sub
貼られたコードには条件不一致の場合の設定は書いてないけど勝手にいれてみた
289 :
282 :2007/05/12(土) 13:47:48
>>288 わかりやすく参考になります。ありがとです。
290 :
288 :2007/05/12(土) 13:53:34
If Week = 7 Or Week = 1 Or ((Cells(3, i) = Range("AO1")) Or _ (Cells(3, i) = Range("AP1")) Or _ (Cells(3, i) = Range("AQ1")) Or _ (Cells(3, i) = Range("AR1")) Or _ (Cells(3, i) = Range("AS1"))) Then がなんかムカつくので Dim Result As Range Set Result = Range("AO1:AS1").Find(Cells(3, i).Value) If Week = 7 Or Week = 1 Or Not Result Is Nothig Then とかでもいい気がするけど、Findの使い方ってこんなんでいいんだっけか・・・ ん〜もっとすっきりさせたい てか、これぐらいなら条件付書式で対応できそうな気もする
291 :
282 :2007/05/12(土) 14:04:12
>>290 重ね重ねありがとうございます。
>>287 を試してみたところ、5行目の
Week = Cells(3, i) で引っかかってしまいます。
条件付き書式だと条件が多すぎて…。
292 :
288 :2007/05/12(土) 14:27:21
>>291 Week = WeekDay(Cells(3, i))
の間違いです。あたまわりー俺・・・
配列数式とか使えるといけるのかな?と思ったんですが
VBA以外は疎いんでアドバイスはできませんorz
>>292 Week = Weekday(Cells(3, i))
あ、と思い試してみましたがまたもや引っかかります。
少し自分でも考えてみます。
>>293 すいません。脳内変換してました
誤)For i = 1 To 37
正)For i = 7 To 37
>>282 とりあえず・・・
Sub test2()
Dim i As Long
Dim j As Long
For i = 7 To 37
If Weekday(Cells(3, i).Value) = 7 Or Weekday(Cells(3, i).Value) = 1 Then
Range(Cells(9, i), Cells(10, i)).Font.ColorIndex = 3
Else
For j = 41 To 45
If Cells(3, i).Value = Cells(1, j).Value Then
Range(Cells(9, i), Cells(10, i)).Font.ColorIndex = 3
j = 45
Else
Range(Cells(9, i), Cells(10, i)).Font.ColorIndex = 0
End If
Next j
End If
If Cells(2, i) = "う" Then
Range(Cells(9, i), Cells(10, i)).Interior.ColorIndex = 34
Else
Range(Cells(9, i), Cells(10, i)).Interior.ColorIndex = xlNone
End If
Next i
End Sub
>>294 うお!こちらこそ気づきませんでm(_ _)m
>>295 ばっちりです。ほんまにありがとうございました!お付き合いいただき感謝です。
298 :
282 :2007/05/12(土) 15:37:03
>>288 ElseIfで条件付けを繰り返し(それしか頭にありませんでした)ていたのが
マヌケでした。
あと
>>290 でご指摘いただいたところも最高にカッコ悪いと思ってましたが
そんな方法があったとは目から鱗でした。
299 :
名無しさん@そうだ選挙にいこう :2007/05/12(土) 17:51:26
前スレで配列の垂直方向での表示方法をも教えてもらったのですが、もう、一度お願いします。 その時は水平方向しか関心がなかったので失念してしまいました。 今現在、次のように当てずっぽうで書いてみましたがだめです。よろしくお願いします。 Range("m1:m20").xlDialogPasteSpecial = Transpose.配列1
>>299 Range("m1:m20").Value = WorksheetFunction.Transpose(配列1)
301 :
名無しさん@そうだ選挙にいこう :2007/05/12(土) 18:06:32
どうもこのスレの住人は、プログラムの可読性や再利用性という意識は低いように見える。 コードをシンプルに書こうという努力には寸暇を惜しまないようだが、どうも議論の矛先が 低レベルだな。 まぁ、VB使いには文化的に元々そういう意識は根付いていないってのもあるんだろう。
>>302 そういう話題についてよいサイトなどがあればご紹介を・・・
applicationupdate falseにすると見違えるように早くなるな
306 :
名無しさん@そうだ選挙にいこう :2007/05/12(土) 21:14:07
terapadを一般的なエディターとして使っているので、これを エクセルマクロで起動させ、A1セルの「Hellow World」を表示させたい。 できるかどうかもわからない初心者です。丸投げでお願いします。
terapadを起動させる事と、 A1セルに「Hellow World」を表示させる事の関連性は?
308 :
306 :2007/05/12(土) 21:23:39
実は、エクセルに引き続き、terapadでいろいろと作業をしたいのです。 「Hellow World」表示は引き継ぐための1例です。
>>308 外部アプリを起動するなら shell関数と言うのがあるけど、、、、
セルの内容をterapadに渡すって意味ならAPIじゃねぇの? VBAでそんなことできたっけ? 一回txtに書き出すかクリップボード経由すれば擬似的なことができなくもなさそうだけど
テキストファイルに書き出して、ShellからTerapadを起動。 これくらいしか思いつかない。
>>303 そーいうのを素養のない人間に見せても「無駄にコードを長くしただけ」とか
受け取られるのが関の山。
まずは自分のコードが「汚い」と感じられるようになれないと。
313 :
306 :2007/05/12(土) 22:33:39
>>309-311 shellとAPIをキーに調べていたら、エクセルマクロで、できると確信しました。
thanxです。
ここで教えてもらうの3回目です。感謝している1人です。
では、良い眠りを。
エクセルの事で質問があります。 今、エクセルで、136(横)×66(縦)マスの表を作れと言われています。 用紙サイズA3(横)で、横を半角文字サイズ、 作れといわれております。 私の頭脳では、1つのセル幅を1.0にして、横136マス分作ろうとしているのですが、 用紙サイズA3には収まりません。 縦66マスは、なんとか納まるのですが。。。 どなたか、上手い事、A3の用紙サイズに納まるようなヒントを お願いいたします。 スレ違いでしたら申し訳ありません。
>>314 ページ設定の
拡大縮小印刷
○横□×縦□ページに印刷 にチェック
横1×縦1
にしてOK
316 :
名無しさん@そうだ選挙にいこう :2007/05/13(日) 14:03:39
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】いいえ 【4 VBAでの回答の可否】 多分無理かも・・・ 【5 検索キーワード 】 IF 8条件以上 C1="キーワード",D1="OK",IF(C1="キーワード",C1+C2+C3+C4+C5+C6+C7,IF(中略),C1)))))))) って感じで計算をしてるんですが、8条件以上の計算を行いたい時はどのような感じでやれば良いのでしょう?
317 :
名無しさん@そうだ選挙にいこう :2007/05/13(日) 14:14:19
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 エクセル*検索 エクセルの識者の皆様、宜しくお願いいたします。 A 20010 20015 20010 20030 20015 20010 この様にある列(例としてA列)に30種類位の値が100くらい連続して入って います。この時に上から20010という数値は何回出てきたかという結果を 20010の隣のB列に出すという事は可能でしょうか? この20010という値自体は部品番号の様な物で、数値ではありません。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 2番目 一致 すべて 抽出 A B 1 佐藤 広報 2 鈴木 開発 3 高橋 企画 4 田中 広報 5 渡辺 人事 6 伊藤 経理 7 山本 開発 8 中村 広報 このように、一致しない人名のみで構成された行Aと、割り当てる部署(7種類)が書かれた行Bがあります ここからB行が広報であるものをすべて抜き出し、列Aの値を列Cに表示することはできますか? 実際は各年度ごとのデータを抜き出す必要があるので、1列ずつ抽出してコピペ、などとすることはできません よろしくお願いします
322 :
名無しさん@そうだ選挙にいこう :2007/05/13(日) 16:25:07
【1 OSの種類 .】 WindowsXP SP2 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Excel2007 テーブル名 リスト コンボボックスで選択するリストで、テーブル名を指定することはできませんか? 「リスト」というシートを作って、「有無」というテーブルを作ったのですが、 リストの指定で、=有無[#Data]とやってもエラーが出てしまいます。
323 :
322 :2007/05/13(日) 16:29:15
x =有無[#Data] o =有無[#データ]
>>320 C1=IF(B1="広報",A1,"")
後はC1のフィルハンドルダブルクリック
>>322 名前の定義はまだしてないのかな?
テーブルを選択した状態で「挿入」→「名前」→「定義」で
【1 OSの種類 .】 Windows 2000 sp4 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 gcd excel 仕様 最大公約数を求めようと次のようにしているのですが、おかしな値が帰ってきてしまいます。 A B 1|26919000 =GCD(A1:A2) 2|13467600 こうすると、何故かB1が"1"になってしまいます。 試しに、B2に=GCD(26919000,13467600)を入力してみたら、5400になりました。 A2のセルをダブルクリックして入力状態にして、なにもせずに別のセルに移動するとB1の値が5400になります。 A列にはこんな数字がいっぱい入っているので、手でいじらなくても正しい値が欲しいのですが、何か間違ってたら教えてください。 ちなみに1になってしまうのはこの数字だけみたいです。なにか制限があるのでしょうか。。
>>326 うちのExcel2000では再現できないので判りません。
328 :
名無しさん@そうだ選挙にいこう :2007/05/13(日) 23:52:16
EXCELのVBAとプログラミングのVBってどう違うのですか? VBAに慣れたらVBも扱えるようになりますか?
329 :
326 :2007/05/14(月) 00:11:09
>>327 ありがとうございます。
私のほうでも手で数値を入力すると再現しないことが分かりました。
ちょっといじっていて、この状態でA1を消すとB1が13467599になるのに気づきました。
どうも内部的になにか変な値になっているみたいです。
A列の内容をVBAで出しているので、そっちを見直して見ることにします。
330 :
326 :2007/05/14(月) 00:24:31
連書きでスマソ vbaから出力するA列を、Longにキャストしてから書き込むようにしたら直りました。 もともとDoubleを1000倍してたので、近似して見えていたのかもしれません。 お騒がせしました。
>>329 A1を26919000
A2を13467599.9
にしたら再現しました。
A列の数値に小数部がありませんか?
333 :
名無しさん@そうだ選挙にいこう :2007/05/14(月) 03:37:39
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 Private Sub Workbook_BeforePrint(Cancel As Boolean) MsgBox "aaaaa" End Sub 印刷のときに処理をさせたいのですが上記のように書くと プレビューを見るときにもメッセージボックスが出てきてしまいます プレビューを見るときには反応させず印刷の前だけに処理させるにはどうしたらいいですか?
334 :
名無しさん@そうだ選挙にいこう :2007/05/14(月) 14:28:23
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 乳児レベル 【5 検索キーワード 】 Excel 関数 複合条件 A B 1| 99 佐藤 2| 92 鈴木 3| 87 佐藤 4| 85 鈴木 Excelの関数について質問です。 例えばこんな表から鈴木さんの最高点を表示させるにはどうすればいいでしょうか? 鈴木さんを含む行だけを抽出した後に列Aに対してMAX関数を使えばよいと 思うのですが、うまく実現できません(´・ω・`)
>>334 C1=MAX(IF(B1:B4="鈴木",A1:A4,""))
を『配列数式』で行けないかな?
336 :
334 :2007/05/14(月) 15:32:15
>>335 キタワァ*・゜゚・*:.。..。.:*・゜(n‘∀‘)η゚・*:.。. .。.:*・゜゚・* !!!!!
ありがとうございました!!!
337 :
名無しさん@そうだ選挙にいこう :2007/05/14(月) 16:13:35
もしかすると、過去にも同じような質問があったかも知れませんが どなたか教えて下さい。 毎回ではないのですがエクセルを共有して使用していると、セーブしたタイミングでバグります。 具体的なバグの内容は ・SHEETがなくなる ・セルが違うSHEETに移動する 等と要はデータとしてかなり使い物にならない状態になります。 全く同時にセーブした時になるかと思い、試してみたのですが そうでもないようです。 (もしかすると、私のタイミングがズレていたのかも知れないですが・・・) どなたか同じような経験をされた方や、対処方をご存知の方が居ましたら ご教授下さい。 ちなみにバージョンはOFFICE 2000です。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━ 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003SP2 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 エクセル csv保存 """ csvのファイルで "名前","郵便番号","住所","電話番号","" 上記のファイル形式を、データ取り込み(文字列の引用符は{なし})して、 修正(一括で修正したいのでマクロを使用予定)後、 ファイルの種類を、CSV(カンマ区切り)(*.csv)で保存しました。 テキストエディタで中身を見ると """名前""","""郵便番号""","""住所""","""電話番号""","""""" 上記のように " が3つになります。 エクセルで "","",の形式で保存する方法はありますか。
339 :
名無しさん@そうだ選挙にいこう :2007/05/14(月) 16:53:27
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】△ 【4 VBAでの回答の可否】 ○ 【5 検索キーワード 】vba excel フォーム チェックボックス リンク セル A1にフォームのチェックボックスを置きコントロールの書式設定からB1にリンクさせ、チェックの状態がTRUEとFALSEで確認できるようにしました。 そしてA1:B1をコピーしてA2に貼り付けたんですが、A1とA2のチェックが同時に動きその状態がB1に表示され、B2は動きません。 おそらく理由として、シート上に存在する「B1にリンクするチェックボックス」をコピーしているからだということは分かりました。 そこで、チェックボックスが操作された瞬間(アプリケーションが呼ばれた瞬間)に、現セルから1列右にリンクするというマクロを作れば コピーしたときに同じ場所にリンクしてしまう問題が解決できるのではないかと考えました。 1.これは可能ですか? 2.可能であれば、どういうコードを記述すれば良いのでしょうか。 キーワードが悪いのか、はたまた出来ないから載っていないのか、どうも検索しても出てきません。 ご教授ください、長文失礼しました。
>>338 よくわからないけどそのテキストエディタで
""" → " に置換すればいいんじゃない?
【1 OSの種類 .】 WindowsXPsp2 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 ヘルプ(関数→一般的に使用される数式の例)を参考にしました 関数についての質問です。 不規則に○×が並んでいると仮定します。 ○が出現した順に「0」で、次に○が出現したら「1」と返すようにしたいのです。 例) ○×○×××○×○××○・・・ 0*1***0*1*0**1・・・ のようにです。きちんと並んで表示されていないと思いますが、すみません。 ×のところはとりあえず「*」にしましたが、なんでもいいです。 よろしくお願い致します。
1文字1セルなら B1 =IF(A1="○",MOD(COUNTIF($A1:A1,"○")+1,2),"*") これをコピーでOK 一つのセルに入った状態のまま処理するのは たぶんVBAじゃないと無理
343 :
342 :2007/05/14(月) 22:08:41
まちごうた B1じゃなくてA2 1行目に入ってる場合の話です
344 :
341 :2007/05/14(月) 22:31:40
>>342 レスどうもです。
完璧です。
ありがd
345 :
名無しさん@そうだ選挙にいこう :2007/05/14(月) 23:53:50
【1 OSの種類 .】 WindowsXP sp2 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】INDIRECT COLUMN 列番号 等 あるセルに =INDIRECT("B"&ROW(A2)) と書くとそのセルにB2の中身が表示されます。 そこで今度は列を変えるようにして =INDIRECT(COLUMN(a2)&"1"))や=INDIRECT(COLUMN(a2)&1)) にしてみるとエラーになります。 11になってしまうのが原因だと思いますが COLUMN(や他の関数?)でアルファベットの列番号を取得はできないのでしょうか? また、このままエラーが出ない書き方なんかあるのでしょうか? お願いします。
>>345 ADDRESS関数を使用する。条件によってはOFFSET関数でもいいかも。
ありがとうございました 方法変更を検討します。
348 :
名無しさん@そうだ選挙にいこう :2007/05/15(火) 02:52:33
マウスコンピューターのPCを持ってるのでExcelが入ってないんですが、Excelって高いですね。 Excelみたいなソフトは入っていますがこれからの仕事のためにもちゃんとしたExcelをマスターしたいと思って。 やっぱ高くてもExcel買うべきですかね
仕事で使うならExcel買うべき プライベートならマクロを使いたいかどうかだな というか、そんな高い物でもないだろ Office Professionalにしたって高額ソフトってわけでもないし
350 :
名無しさん@そうだ選挙にいこう :2007/05/15(火) 09:58:19
excel2002を使っています。 セル1をリスト入力で A,B,C と3種類の選択肢を作って選択入力にしました。 セル2にその入力内容を表示したいのですが、セル1の値がA,なら整数の5、 Bなら整数の7になるようにしたいのです。 どのようにすればよいでしょうか?お願いします。
>>350 セル2=VLOOKUP(A1,{"A",5;"B",7;"C",""},2)
または
セル2=IF(A1="A",5,IF(A1="B",7,IF(A1="C","","")))
とか。。。
352 :
名無しさん@そうだ選挙にいこう :2007/05/15(火) 10:18:31
やってみます。ありがとう!
354 :
名無しさん@そうだ選挙にいこう :2007/05/15(火) 11:29:27
excel2003です。 フォームのオプションボタンをコピーしたら、情報を共有しているらしくどれか一つしか選択できません。 コピー元とコピー先のオプションボタンを別々に扱いたいのですが、どこかで設定できますか?
>>354 グループボックスで囲み分けるとか・・・。
357 :
名無しさん@そうだ選挙にいこう :2007/05/15(火) 11:47:23
>>355 むむ、どうやってやれば良いんでしょうか・・・
358 :
名無しさん@そうだ選挙にいこう :2007/05/15(火) 11:47:32
>>356 すいません、確認したいんですけどExcelっておいくらですか
>>357 フォームの中にXYZって書かれた四角いのがあるでしょ?
それを使って囲んだ分だけが同じグループになる。
>>359 ああ!シートの保護してあったため選べませんでした!
ありがとう〜
361 :
名無しさん@そうだ選挙にいこう :2007/05/15(火) 12:47:06
教えてください。 Aの縦のセルに次の数字が入力してありました。 321 5434 25 2645 5434 25 25 2645 5434 よくみると、実は次の数字だけで書かれていますが、 Bの縦のセルへこの4つの数字を抽出し記載するには、 どのようにすればよいでしょうか? 25 321 2645 5434
362 :
名無しさん@そうだ選挙にいこう :2007/05/15(火) 14:07:58
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 XP 【3 VBAが使えるか .】 否 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 EXCEL BEEP あるセルを常時監視し、一定の数値であった場合にBEEP音を鳴らすことは出来ませんでしょうか? 具体的には楽天証券のリアルタイムスプレッドシートマクロにより自動更新されるセルがあり、その数値によってBEEP音を鳴らしたいのです。 リアルタイムスプレッドシートマクロ内を弄るのが理にかなっているのかも知れませんが、規約等で出来ないものとしてお願いします。
363 :
名無しさん@そうだ選挙にいこう :2007/05/15(火) 18:01:30
>>362 計算結果の表示されるセル=C1として
Private Sub Worksheet_Calculate()
If Range("C1") > 10 Then Beep
End Sub
365 :
名無しさん@そうだ選挙にいこう :2007/05/15(火) 18:45:41
前々々任者が作ってくれたエクセルbookの表はよくできているので、仕事に欠かせない。ところが、出力様式が少し変わったので修正したいのだが、マクロを見ても出力範囲を表したものが見つからない。どう調べたらいいですか。vba以外にvbで書いているのがあるのかなー?
366 :
名無しさん@そうだ選挙にいこう :2007/05/15(火) 19:50:47
だからExcel何円だ!!
>>365 ファイルメニュー⇒ページ設定⇒シートタブにある印刷範囲で決めてるとか?
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 ExcelXP 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 関数を教えてください _A_. |_B_. |_C_. .|_D_. aaa..|aaa..|今日| bbb..|bbb..|明日| ccc..|ccc..|昨日| ccc..|ddd..|去年| ddd..| aaa..| A列にあるデータを、B列を参照して、同じならC列の値をD列に吐き出させるにはどんな関数使えばいいでしょうか? 例えばA列がaaaならD列に今日、cccなら昨日となるようにしたい ただし、Dに =Aがaaaなら今日とする といった命令ではなく、数式としたい (実際はB列もC列も膨大なので) わかりにくくてすいません
>>369 こゆこと?
D1=VLOOKUP($A1,$B$1:$C$4,2)
>>369 =IF(EXACT(A1,B1),C1,"")
これでいいのかな?
372 :
名無しさん@そうだ選挙にいこう :2007/05/15(火) 22:51:45
>>369 =if(A1=B1,C1,"")
これをコピーしまくりんぐ
374 :
369 :2007/05/16(水) 00:13:54
>>370-373 ありがとです。
>>370 さんのがうまいですね
参照するB列とA列は1:1で対応してない(A列は数百行でもB列は数行)のでほかのやり方だとうまくなかったです。
Thanks
375 :
名無しさん@そうだ選挙にいこう :2007/05/16(水) 00:24:07
VBAで、セルの値が#N/Aであるかどうかを判定するにはどうすればいいのでしょうか?
>>375 If cells(1,1).Value = CVErr(xlErrNA) Then
でいけるとおもわれ
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 教えてください。 1 5 9 2 6 10 3 7 11 4 8 12 13 14 ・ ・ 24 25 ・ ・ 36 以上の値をコマンドボタンで出したいのですがどのようにすればいいのでしょうか? 初心者なのでまったく分かりませんのでよろしくお願いします。
意味府
379 :
名無しさん@そうだ選挙にいこう :2007/05/16(水) 03:01:38
パソコン一般板から誘導されてきました。 エクセルのマクロについて質問があります。 エクセルで作った一覧表のデータの高さ、巾等一部のデータをコピーして 別のエクセル表に貼り付けていき、終わったら、1行下に下がってまた 同じものをコピーして貼り付けていくマクロを作りたいのですが 1行分終わった後はどんなマクロを入れればいいのでしょうか? また貼り付ける際に結合したセルに貼り付ける場所があるのですが、 その部分が結合したセルの一部分を変更することはできませんと でるのですがどのようにすればいいでしょうか? 一連の操作を一回でやれるようにしたいと思っています。 【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい (マクロの記録で簡単なのを作るくらいなら) 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 マクロ 繰り返しで見てみましたが 違うようなのしかでてなくて意味がわかりませんでした。
380 :
名無しさん@そうだ選挙にいこう :2007/05/16(水) 03:16:49
【1 OSの種類 .】 WindowsVista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】デザイン excel グラフ テンプレート Excel2007では「グラフのスタイル」という項目でグラフのデザインを一括して変更できますが、 現状ではプリセットのものからしか選ぶことができません。 これを自作で設定するようなことは可能なのでしょうか?
>>379 逆に考えるんだ、「シートをコピーしていらないところを消せばいいさ」と考えるんだ
>>379 正直、その程度のかじり方でマクロの質問をされるのは困る。
質問→回答の応酬が際限なく続いて、スレが無駄に埋め尽くされてしまう。
マクロの質問するなら、回答されたマクロのメンテをある程度自分で出来る
程度に基礎を積んでからにしてくれないかな。
>>379 一行下がる
Cells(r, 1).End(xlUp).Offset(1).Select
こーいうこと?
セル結合の件
書いてある通り結合されたセルの一部分を変更する事はできない
これはVBAではなくEXCELの仕様なわけだが379はどうしたいんだ?
384 :
名無しさん@そうだ選挙にいこう :2007/05/16(水) 11:02:11
置換で文字の後ろに記号を打つことは出来ますか? アアアア ↓ アアアア☆
386 :
名無しさん@そうだ選挙にいこう :2007/05/16(水) 11:46:54 BE:420372465-2BP(301)
先生! 列の数を最大256以上に拡張する裏技はないですか?
387 :
名無しさん@そうだ選挙にいこう :2007/05/16(水) 11:47:36
388 :
名無しさん@そうだ選挙にいこう :2007/05/16(水) 11:48:30 BE:672595586-2BP(301)
マジ?
389 :
369 :2007/05/16(水) 12:40:27
>>369 です。
またわからないことが出て来てしまったのでアドバイス頂けないでしょうか?
_A_. |_B_. |_C_. .|_D_.
aaa..|aaa..|今日|
bbb..|bbb..|明日|
ccc..|ccc..|昨日|
ccc..|ddd..|去年|
ddd..|
aaa..|
sss.|
A列のデータからB列に該当する値を検索してC列の値をD列に表示したいということで教えて頂いた
D1=VLOOKUP($A1,$B$1:$C$4,2)
でうまくいったのですが、A列にB列のデータにはない値(ここではsss)があった場合「#N/A」が表示されてしまいます。
やりたいのは、B列にないデータの場合は、A列の値をそのままD列に表示したいのです。
調べるとA列に空白セルがある場合には
D1=IF(A1="","=D1",VLOOKUP($A1,$B$1:$C$4,2))
とやればよいようなのですが、【B列にあるデータ以外】にはという条件設定をするにはどうしたらよいでしょうか?
お知恵を拝借できれば助かります。
>>389 VLOOKUP関数を使った回答以外の回答もよくみてみろ
使える関数を用いた解答が付いてるぞ
391 :
名無しさん@そうだ選挙にいこう :2007/05/16(水) 13:09:32
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 2000
【3 VBAが使えるか .】 否
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 EXCEL 抽出 列
>>361 です。
初めA列に次のデータが記載されています。
321
5434
25
2645
5434
25
25
2645
5434
B列へ使われている数字を抽出するには、どのように関数を
使えばよいでしょうか?ちなみに次の4つの数字が抽出結果と
なり、B列に書かれるようにします。
25
321
2645
5434
=MIN($A$1:$A$9) =SMALL($A$1:$A$9,RANK(B1,$A$1:$A$9,1)+COUNTIF($A$1:$A$9,B1))
393 :
名無しさん@そうだ選挙にいこう :2007/05/16(水) 14:52:44
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 抽出、複数条件、マッチ シート1 シート2 A B C D E A B C D E 1 1 20 田中 木村 東京 1 1 1 1 2 2 1 20 加藤 山田 大阪 2 19 20 25 13 3 1 20 鈴木 石田 福岡 3 田中 休み 東京 東京 東京 4 1 25 田中 加藤 東京 4 加藤 休み 大阪 休み 福岡 5 1 25 木村 後藤 大阪 5 鈴木 休み 福岡 福岡 大阪 6 1 25 山田 児島 京都 6 山田 休み 休み 京都 休み 7 1 25 鈴木 太田 福岡 7 青山 休み 休み 休み 埼玉 8 2 13 田中 加藤 東京 8 木村 休み 休み 大阪 休み 9 2 13 鈴木 木村 大阪 9 児島 休み 休み 休み 福岡 シート1に↑のように入力されたデータが2000行程度あり、それを元にして、 予め1行目と2行目、そしてA列が入力済みとなっているシート2のB3:IA50に、 シート1のE列の文字を抽出するにはどうすればよいのでしょうか? VLOOKやMATCH関数ではうまく行かなくて・・・よろしくお願いします。
>>391 B1=MIN($A$1:$A$9)
B2=SMALL($A$1:$A$9,COUNTIF($A$1:A$9,"<="&$B1)+1)
B3=↓フィルコピー
B4=↓フィルコピー
XPのエクセル2000です。 シート1のN列に○がついている行があります。 ○がついている行のA列とC列をコピーして シート2の3行目以降にA列とB列に値のみを貼り付けたいです。 シートの表現が間違えていると思うので、直してもらえないでしょうか? あと、常時このVBAを作動させたいです。方法を教えてください。 Sub 判定書込み() Dim 判定行 As Long Dim 書込行 As Long 書込行 = 3 For 判定行 = 5 To 305 If Not IsError(Worksheet(1).Cells(判定行, 14)) Then If Worksheet(1).Cells(判定行, 14).Value = "○" Then 書込行 = 書込行 + 1 Worksheet(1).Cells(判定行, 1).Select Selection.Copy Worksheet(2).Cells(書込行, 1).Select ActiveSheet.PasteSpecial Format:=3, Link:=1, DisplayAsIcon:=False, _ IconFileName:=False Worksheet(1).Cells(判定行, 3).Select Selection.Copy Worksheet(2).Cells(書込行, 2).Select ActiveSheet.PasteSpecial Format:=3, Link:=1, DisplayAsIcon:=False, _ IconFileName:=False End If End If Next 判定行 End Sub
Sub hoge() 書込行 = 3 For 判定行 = 5 To 305 If Sheets("Sheet1").Cells(判定行, 14) = "○" Then Sheets("Sheet2").Cells(書込行, 1) = Sheets("Sheet1").Cells(判定行, 1) Sheets("Sheet2").Cells(書込行, 2) = Sheets("Sheet1").Cells(判定行, 3) 書込行 = 書込行 + 1 End If Next End Sub
>>396 すげー・・・・
こんなに早くスリムな回答ありがとうございます。
398 :
395 :2007/05/16(水) 17:12:16
>>396 あっあと、エクセル起動中に常時このVBAを動かすには?
>>397 こんな感じでSheet1に書く
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
書込行 = 3
For 判定行 = 5 To 305
If Sheets("Sheet1").Cells(判定行, 14) = "○" Then
Sheets("Sheet2").Cells(書込行, 1) = Sheets("Sheet1").Cells(判定行, 1)
Sheets("Sheet2").Cells(書込行, 2) = Sheets("Sheet1").Cells(判定行, 3)
書込行 = 書込行 + 1
End If
Next
End Sub
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】 勉強中 【5 検索キーワード 】 columns マクロの記述で、変数Aを行番号にしたいのですが、 columns ("A") columns "A" columns A どれも正しく認識してくれません。 VBAの関数ってなんだか記述がしにくいなあ、と初心者として思っちゃいます。 どう書けばよいのでしょうか?
ヘルプは見ましたが、具体的な変数の使い方は載ってないようでした。 (”A”)のように書いてA列と表すのはわかりましたが、変数のほうは・・・。 今気づいたのですが、列と行を間違ってましたね。
>>402 HELPには、こう書いてある
>>次の使用例は、"myRange" という名前のセル範囲にある列 1 のすべてのセルの値を 0 に設定します。
>>Range("myRange").Columns(1).Value = 0
だからColumns(1)の1を変数に替えれば良いだけ。
なんで都合良く正解のみを外してるのかが理解できない というかヘルプちゃんと読めば具体的に書いてあるし 「載ってないようでした」ではなく「絶対に載ってません」と断言できるくらいに読み漁れ
ヘルプ10回読めば理解できるのに それすらしたくない奴にプログラムは無理
連投?
409 :
名無しさん@そうだ選挙にいこう :2007/05/16(水) 21:11:09
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 わかりません 【4 VBAでの回答の可否】 わかりません 質問は、今まではキーボードの矢印キーを押せば、 下や横に行っていたんですが今日になって動きません。 どうしてでしょうか?
キーボードのScrollRockKeyがかかってるとか
Rock じゃなく Lock だった
412 :
名無しさん@そうだ選挙にいこう :2007/05/16(水) 21:21:15
あーありがとうございます! そんな機能があるんですね・・・。治ってよかったです
>>393 VBAを使わないならインデックスになる列をつけるのが吉
たとえば
シート1のA列に1列挿入して
A1 =B1&”/”&C1&D1
これをコピーすれば、
シート2!B3 =Vlookup(B$1&”/”&B$2&$A3,シート2!$A$3:$F$2000,6,0)
でOKのはず
ただ、VBA向きのシートだけどね^^;
>>393 参考までにユーザー定義関数
Function シフト(myrng As Range, m As Integer, d As Integer, myname As String)
Dim i As Long
Dim maxi As Long
maxi = myrng.Rows.Count
For i = 1 To maxi
With myrng
If .Cells(i, 1).Value = m Then
If .Cells(i, 2).Value = d Then
If .Cells(i, 3).Value = myname Then
シフト = .Cells(i, 5)
Exit Function
End If
End If
End If
End With
Next i
シフト = "休み"
End Function
415 :
369 :2007/05/16(水) 23:03:16
>>390 ども
とりあえず
IFとISNA関数でなんとかやりたいことはできました
また困ったときはお知恵拝借にきます
416 :
名無しさん@そうだ選挙にいこう :2007/05/16(水) 23:13:32
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2000 【3 VBAが使えるか .】 勉強中 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 グラフ VBA ChartObjects("index") のindexに入れるインデックス番号やグラフ名はどこにのってますか? 今マクロの記録で覗いてみたら"グラフ 11"だったのですが このインデックス番号やグラフ名は後から変更できるのですか? 1つ目のグラフが11になってるのが気に入らなくて1に直したいのです
417 :
名無しさん@そうだ選挙にいこう :2007/05/16(水) 23:24:15
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 変数の宣言 1回変数の宣言を行えばそのbook内ならいつでも使用可能にするにはどうすればいいですか? 今はプロシージャごとに毎回同じことを宣言しててなんか手間に思えます
複数ブックにあるそれぞれのシートを、 「一つのブックでの複数シート」という形にまとめる方法を教えてください。 数が非常に多いのでVBAでやりたいです。 ググってみたのですが、 「一つのブックの一つのシートにまとめる」というものしか探せませんでした。 よろしくお願いします。
>> 標準モジュールでPublicあたり。 しかし、当然ながら値は保持されたままなので 使いづらくなる予感。
420 :
417 :2007/05/16(水) 23:32:29
>>419 なるほど確かにそうですね
ありがとうございました
>>420 プロシージャではなくモジュールの頭で宣言すれば
同じモジュール内だったら使える
しかし使いまわす目的なら毎回初期化する手間考えると
無意味だと思うが
422 :
まこ :2007/05/17(木) 01:17:42
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 不可 【5 検索キーワード 】 グラフ お世話になります。 1つのシートに2つのグラフがあり、シートが30ある1つのファイルを つくりたいのですが、シートのコピーを行っていたところ、途中から グラフの部分がコピーされなくなってしまいました。 1つのファイル内につくれるグラフの個数に、制限があるのでしょうか? お分かりになる方教えていただければと思います。
423 :
名無しさん@そうだ選挙にいこう :2007/05/17(木) 01:18:55
Excel2*** 質問忘れた
425 :
名無しさん@そうだ選挙にいこう :2007/05/17(木) 01:44:43
424:名無しさん@そうだ選挙にいこう :2007/05/17(木) 01:31:32 [sage]
>>423 精神障害者の方ですか?
427 :
名無しさん@そうだ選挙にいこう :2007/05/17(木) 10:29:23
Selection.Offset(6).Formula = の右辺に =COUNTIF(Sheet1!$D$1:$D$5000,"<20") という計算式を入れたくて、さらに5000には変数を使いたいと思っています で Selection.Offset(6).Formula = "=COUNTIF(Sheet1!$D$1:$D$" & P & ","<20")" と書いたのですが 最後の ","<20")" の部分でコンパイルエラー:修正候補:ステートメントの最後 になってしまいます どう書いたらいいのでしょうか?
>>427 Selection.Offset(6).Formula = "=COUNTIF(Sheet1!$D$1:$D$" & P & ",""<20"")"
429 :
名無しさん@そうだ選挙にいこう :2007/05/17(木) 15:07:59
562 | 4様 563 | ABCマート 563 | ニコニコ堂 564 | AAA会社 これを元に他のシート(下記のもの)作っているのですが 563という数字を持ったものを1列にするためABCマートの右側のシートに表示させる ように関数を作っていますがうまくいきません。 index・lookupとう様々な方法を試したのですがいい関数はないでしょうか 562 | 4様 | 563 | ABCマート | ニコニコ堂 | 564 | AAA会社 |
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 セルの範囲をcells で指定するときはどう書くのでしょうか。 cells コマンドは、単一セル専用ですか?
IFで、10%台の場合○を表示するってどうしたらいいでしょうか
432 :
名無しさん@そうだ選挙にいこう :2007/05/17(木) 15:51:04
0.1以上0.2未満を丸
=IF(0.1<=H5<0.2,"○","") 一体どこがおかしいんだ・・・・助けて
>>433 =IF(AND(0.1<=H5,H5<0.2),"○","")
435 :
名無しさん@そうだ選挙にいこう :2007/05/17(木) 16:41:20
=IF(P21<0.2,IF(P21>=0.1,"○",""),"")
これでなるから
>>429 のアンサーを頼む
そーいやーANDなんて便利なもんがあったな・・・。 正直すまんかった。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 ウォーキングの記録を付けていて、A列に日付、B列以降に距離やカロリーを書いたシートを使っています。 A列には1年分の日付を、昇順でコピーしてあります。 このファイルを開いた時、若しくは何らかの操作を行う事で、今日付の行のB列(距離のセル)にカーソルを 移動させたいのですが、ググってみても何から勉強したらいいのか見当が付けられませんでした。 何かヒントをいただけませんでしょうか?
438 :
393 :2007/05/17(木) 18:34:30
>>413-414 ありがとう!
そっかー、インデックスつけると良いんですね。勉強になりました。
ちょっとゴテゴテだけど、IF(ISNA(VLOOKUP〜でなんとか出来ました。
439 :
名無しさん@そうだ選挙にいこう :2007/05/17(木) 18:37:05
VBAで、A1セル(式あり、値あり)、B1セル(式無し、値あり)のときC1セルに =A1*B1をいれるのと同じことをするため、 cells(1,3).value="=cells(1,2)*cells(1,1)" と書いてみたもののダメです。 直してください。よろしく。
Cells(1, 3).Formula = "=A1*B1"
>>439 値だけ入れたいのであれば
Cells(1, 3).Value = Cells(1, 2) * Cells(1, 1)
>>431 =IF(ROUNDDOWN(A1,1)=0.1,"○","")
>>437 ↓ これを ThisWorkbook に書く。後は Help みたりぐぐったり。
Private Sub Workbook_Open()
Cells(DateDiff("d", DateSerial(2006, 12, 30), Date), 2).Select
End Sub
444 :
名無しさん@そうだ選挙にいこう :2007/05/17(木) 21:53:24
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 [1][4] [2][5] [3][6] [][7] [][8] こんな感じで数値が並んでいてColumnAのRowが5以下ならば ColumnBの頭から不足分をCut&Pasteして不足分を補い、ColumnBは Cutした分だけ上へ移動 ってやりたいのですがどのように書いたらいいのでしょうか? 空白行は上から探したいです sub test() Dim R As Integer ActiveSheet.Range("$A$1").End(xlDown).Address = R ここから先がわかりません
>>444 意味がよくわからないけどこういうこと?
Sub Macro1()
Dim r As Integer
With ActiveSheet
r = .Cells(65536, 1).End(xlUp).Row
If r > 5 Then Exit Sub
.Cells(r + 1, 1).Resize(5 - r, 1).Value = .Cells(1, 2).Resize(5 - r, 1).Value
.Cells(1, 2).Resize(5 - r, 1).Delete Shift:=xlUp
End With
End Sub
446 :
439 :2007/05/17(木) 22:52:20
>>440 >>441 サンクス ただ、
自分の説明が不十分でしたが、Cells(1, 3).Formula = "=A1*B1"はうまくいきます。自分もC1セルを選択後、activecell.value="=A1*B1"でうまくいくのですが、ループさせたいので、cells()を使って表したいのです。式でも値でもかまいません。
Cells(1, 3).Value = Cells(1, 2) * Cells(1, 1)も
cells(1,3).value="=cells(1,2)*cells(1,1)"と同様、型不一致エラーがでます。
>>446 ぢゃあコレもエラーになるか?
Sub nande()
Dim i As Long
For i = 1 To 10
Cells(i, 3).Value = Cells(i, 2).Value * Cells(i, 1).Value
Next i
End Sub
449 :
444 :2007/05/17(木) 23:16:24
>>445 うまく動いてます ありがとうございました
Resizeの部分を理解するのに時間が掛かりましたがようやく飲み込めました
ところでIfについてわからないのですがElseもEnd Ifもないのにエラーにならないのはなぜなんですか?
>>449 基本的な文法も知らずに闇雲に質問レスを入れるのは止めてもらえるかな。
スレの趣旨から逸脱してる
451 :
439 :2007/05/17(木) 23:53:24
>>447 >>448 サンクス おさがわせしすみません。型不一致エラーは別物で、教えていただいたとおりで値が正常に出ます。どうもです。
452 :
445 :2007/05/18(金) 00:24:31
>>449 if文内の処理が単一行の場合はend ifを省略できます。
>>450 VBAは素人が手探りでやることが多いものなので
基本的な文法ルールを知らないことも多いと思われます。
ってか、自分もそうだ(^^;)
もう少し生温かい目で見てくださいm(_ _)m
453 :
名無しさん@そうだ選挙にいこう :2007/05/18(金) 01:18:10
【1 OSの種類 .】 WindowsXPPRo 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 シート ひとつのシート内のデータを、60分割して、それぞれ別々のシートに貼り付けるマクロを作っています。 コードはループではなく、ベタ書きしています。(60個分ですが、コピペと微改造で済むので) それなのに(?)27シート目以降、すべてのシートで、貼り付けのときに、 2行のデータを一回だけ貼り付ければいいところを、最後の行(65535行目)まで貼り付けてしまいます。 ・27シート目の処理だけ飛ばすと、28シート目からこの現象になる。 ・26シート目までの処理を飛ばし、27シート目の処理だけ実行したらOKだった。 ・ 〃 28 〃 ・データ量の多いシートがあったので、削除したけど、やはり同じところで発生する。 ・かまわず実行し続けると29シート目あたりで、「リソース不足」と出る。 解決する方法はあるのでしょうか。。。あればご教授願います。 PCのスペック不足によるものならかなり絶望的な気がしないでもないですが。。
不足なものが多すぎてどう言えばいいのやら せめてコードくらい晒してくれ
>>454 意味不明な質問は放置しておけばいいよ。
>>443 ありがとう!思った通りの動作が出来ました。
日数が決まっているから、絶対位置を算出できるという事ですね。
どうやれば検索に使える日付を生成できるんだろう?と、
まったく見当違いな方向を調べてました・・・
457 :
名無しさん@そうだ選挙にいこう :2007/05/18(金) 11:09:48
【1 OSの種類 .】 Windows VISTA 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】 【4 VBAでの回答の可否】 【5 検索キーワード 】 exel 2007 大きいアイコン エクセルの上のほうのアイコンを大きくしたいのですが、どうやったらできますか? 2003や2001のときは普通にできたのですが、2007にしてからできません。
しょーもない質問です エクセルで「図の挿入」を選ぶと出るファイルメニューが 必ず、「縮小表示」なんですが、詳細表示に固定できませんか? 詳細表示に変えて挿入、おなじファイルですぐ図の挿入をやると、もう縮小表示に戻ってます
459 :
名無しさん@そうだ選挙にいこう :2007/05/18(金) 11:50:07
あ〜 しょーもないっ
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 不可 【5 検索キーワード 】excel セル番地 計算 A B --------- 1 10 ↓ 20 ↓ 30 ↓ 40 ↓ 50 100 お世話になります。上記のようにA列に1〜100までの数値が 入ってるとします。ここでセルの内容を問わず、強制的に任意の セル毎(例は10個おき)の内容をB列に羅列したいのですが、 セル番地の抽出(指定)方法がわかりません。 B列にはどんな関数(式?)を入力すれば良いでしょうか? 宜しくお願い致します。
461 :
名無しさん@そうだ選挙にいこう :2007/05/18(金) 12:38:06
>セルの内容を問わず、強制的に任意のセル毎(例は10個おき)の内容をB列に羅列 とは、なんですか? 例があるといいのでは?(上の例ではわからない)
462 :
名無しさん@そうだ選挙にいこう :2007/05/18(金) 12:38:38
エクセル2003です。 年月日を入力するセルがあります。 このデフォルト値を「(現在の年)年1月1日」にしたいのですが どうすればいいでしょうか。 よろしくお願いします。
例の通りだとすると ROW関数でセルのある行番号を調べてそれに10を掛けると欲しい行数を得られる それをINDIRECT関数でセルの番地に当てはめれやれば良い =INDIRECT("A"&ROW(B1)*10) とか 場合によってはOFFSET関数も有用 それぞれの関数の詳細はExcelのヘルプを参照しろ
>>462 デフォルトの値ってなんだよ
現在の年が欲しければ NOW関数で拾って来い
あとはYEAR関数で年数に変換すればいいだろ
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 ほんの少々 【4 VBAでの回答の可否】 可 あるセルの範囲を、変数を使って指定したいのです。 x、y を変数として(y、x)から(y、x+20)までの範囲を指定したいと考えています。 マクロ自動記録でやってみたところ、 Range("A1:A20").Select のようになり、根本的に違うような気がします。 検索してみたところ、unionなどそれらしいものもひっかかりましたが、それでもよくわかりません。 どなたかご教授下さい。
>>465 このあたりかな?
Range(Cells(y, x), Cells(y, x + 20)).Select
または
Cells(y, x).Resize(1, 20).Select
467 :
462 :2007/05/18(金) 13:40:09
>>464 デフォルト値というのは語弊がありました。
YEAR(NOW())にすると、2007しか返ってきませんよね。
要するに「年1月1日」というのは固定で、
2007の部分だけが変動するようにしたいわけです。
これを1つのセルで表示するには、どうしたらいいでしょうか。
>>467 =DATE(YEAR(NOW()),1,1)
469 :
名無しさん@そうだ選挙にいこう :2007/05/18(金) 13:44:00
470 :
462 :2007/05/18(金) 13:48:14
471 :
460 :2007/05/18(金) 14:03:59
472 :
458 :2007/05/18(金) 14:55:00
>>459 そういわずに教えてくださいよ
googleで検索したら
「普通は前回のを覚えてるはず、あなたのPCがおかしい」→再インストールで治った
ってのがかかったけど、覚えてるもんですか?
再インストールは、なんか正規のやり方があったら馬鹿らしいんで
473 :
458 :2007/05/18(金) 15:04:27
474 :
名無しさん@そうだ選挙にいこう :2007/05/18(金) 18:18:09
391です。 ありがとう。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 いいえ 下の例のように参照セル位置を計算式で求めるように したいのですがどのようにすれば可能でしょうか? 例. B5のセル…=B1 C5のセル…=R1 B1にB5のセル内容を表示、C5にR1のセル内容を表示 今 こうしているのを B5のセル…=B1 C5のセル…=(B1+16) ←ここの計算式を知りたい のようにしてR1セルの値を表示させたい
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 質問させてください。 エクセルで除算や乗算をするときに必ず100単位で答えを出させる事なんかは出来ないでしょうか? 十の位で四捨五入とかでいいので。 書式設定とかで何とかならないでしょうか?
必ずROUND関数の中で除算や乗算をするようにすればいい 関数使いたくないとかの条件後出しは無しでよろしく
>>478 期待通りの結果が得られました。
また一つ便利な関数を学びました。
有り難うございます。
480 :
名無しさん@そうだ選挙にいこう :2007/05/18(金) 22:51:28
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 とあるWINDOWSベースの専用ソフトを使った測定器で40万個ぐらいから得られた 数値からMAX、AVERAGE、STDEV、CPKが得られるのですが、 この得られた元の数値をtxt出力してEXCELで加工してEXCELで計算させると MAX以外測定器と結果が違って出てきます EXCELの関数計算って信用しても大丈夫ですか? 古い測定器なのでそっちを疑ったほうがいいのでしょうか?
>>480 両方疑って他の方法で計算して比べたほうが良い
たぶん484が正答。 俺なら自分でマクロを組むなり、CSVを読んで計算するプログラムを作って結果を出すなりしてると思う。
三井三菱
>>480 少数のサンプルで比較すると分かりやすいぞ
いきなり全数比較なんてしてもしんどいだけ
適度な数のサンプルで比較して原因を調べる事を薦める
488 :
名無しさん@そうだ選挙にいこう :2007/05/19(土) 20:44:52
【1 OSの種類 .】 Windows xp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 A1に文字(数字なり)が入力されたらB1にA1の文字が飛んで A1に何も入力されてなければ空欄のまま。 B1に「=A1」と入力して「0」と表示させないようにする数式
489 :
488 :2007/05/19(土) 20:47:12
すいません。 間違って送信してしましました・・・。 自己解決しました。 もうしわけないです
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はじめたてです 【4 VBAでの回答の可否】 可 日付に関する質問なのですが、ちょっと入り組んでいて分かりにくくなると 思うのですが、どうかよろしくお願いします。また長文になってしまったので、 2つに分けて書き込みします。 {現状:うまく日付が表示されないため、別に新しくエクセルたててそこで色々試行中} 今新しく立ち上げてるエクセルをエクセルB、元使っていたのをエクセルAと呼ぶ事にします。 今、エクセルBのA1に =TODAY() といれて、2007/5/25と表示されてます 違う場所で、=DATE(A1,A1,25)といれて、2007/5/25と表示させようとしてるのですが #NUM!と表示されてしまいます。 そして、今度は=DATE(YEAR(A1),MONTH(A1),25)といれると、A1と同じ列なら きちんと2007/5/25と表示されるのですが、違う列に入れると#######と表示されてしまいます。 その#######を書式で一度5月25日と表示させてから元にもどすと、きちんと2007/5/25と表示されるようになりました。 最後に、=DATE(YEAR(A1),MONTH(A1),DAY(25))といれて試してみたところ、どこに入れても 2007/5/25と1発ででて成功しました。 しかし、これは新しく立ち上げたエクセルBの結果で、私が実際いれたいエクセルAの方だと =DATE(YEAR(H145),MONTH(H145),DAY(25)) と入れても表示されません。 *H145に=TODAY()といれて2007/5/25と表示されてます。 書式のところをいじれば、H19.5.25や5月25日とはきちんと表示されるのですが 他の2007/5/25等の表示にしようとすると#######とでてどうしても出来ません。
そこで、質問したいのですが =DATE(A1,A1,25)、=DATE(YEAR(A1),MONTH(A1),25)、=DATE(YEAR(A1),MONTH(A1),DAY(25)) の3つ式は間違っているのでしょうか? なぜエクセルBでは、=DATE(YEAR(A1),MONTH(A1),DAY(25))を入れたらきちんと 表示されるのに、エクセルAで同じようにしても表示されないのでしょうか? そして、どうすれば、エクセルAの方で2007/5/25と表示させることができるのでしょうか? すごく長くて解りにくい文なので、何かわかりにくところがあれば 全てお伝えしますので、どうか教えてください。
>>490-491 表示が######となるときはセルの幅が足りないと思う。
=DATE(A1,A1,25)の式は上手くないと思う。
A1=2007/5/25と入ってるとき、A1をG/標準にすると「39221」というシリアル値が表示される。
この「39221」を=YEAR()、=MONTH、=DAY()に入れてやれば年や月や日が表示される。
>>490-491 何を期待して書いたかによるけどこの内容だと2つ目以外は間違いだと思う。
なぜかという問いには、
それぞれの関数のヘルプを読みましたか?
それを理解しましたか?
>>492 セルの幅を最初から広げていても#####になってしまうのです・・・
あと、A1をG/標準にする、というところを詳しく教えていただけませんか?
>>493 2つ目の式は正解なのですか?
式は合っているのに、エクセルAの方できちんと表示されないのは何故でしょう・・・
関数のヘルプはだいたい読んで、自分に考えられる
3つの方法で試したのですが、それでもダメだったので
ここで質問させてもらっています
>>494 参照しているセルの表示形式が文字列になってるとかじゃないよな?
「####」の列をダブルクリックして自動で列幅調整しても「###」のまま?
ヘルプみたんならシリアル値は理解してるよな?
496 :
495 :2007/05/19(土) 23:48:52
###...の補足 エラー値 ##### の意味 セルの幅よりも長い数値、日付、時刻が入力されている場合、 または結果が負の値になる日付または時刻の数式が入力されている場合、 エラー値 ##### が表示されます てか、ヘルプで検索かけると普通にでてくるよ
あう、本当にバカですみません・・・ 幅広げるのも試したはずだったのですが 今また広げてみたら、普通に表示されてしまいました・・・orz 皆様本当にご迷惑おかけしました・・・
>472-497 バカ漫才ですか?
Excelを極めると 神になれると聞いたんですが、何か良いExcelの書籍ないでしょうか?
501 :
名無しさん@そうだ選挙にいこう :2007/05/20(日) 23:24:09
メールに添付してあるエクセルを開こうとすると開けないんですが…原因がわかりません
・デコード出来てない (→Excel関係ないのでスレ違い) ・ファイルが破損している (→Excel関係ないのでスレ違い)
>499 エクセルなんか極めなくても、早く届くジャンプをうpすれば 神になれるよ。捕まるけど。 >501 添付ファイルを一旦どこかに保存して、エクセルの ファイル→開く、から開いてみれ。
504 :
名無しさん@そうだ選挙にいこう :2007/05/21(月) 00:06:36
範囲選択した全ての数値から-100をしたいのですがどうやればいいでしょう?
505 :
名無しさん@そうだ選挙にいこう :2007/05/21(月) 00:09:31
全部-100すればok
量が多すぎます><
対象範囲と同じ大きさの空範囲を選択して、100を入力しCtrl+Enter そのままコピーして対象範囲を選択し、形式を指定して貼り付けで減算すればいい 又は=対象-100の式をフィルか配列数式で作ってコピーし、対象範囲に値の貼り付け
>対象範囲と同じ大きさの空範囲を選択して、100を入力しCtrl+Enter 一カ所のセルに「100」と入力するだけでOK
( ゚д゚)ポカーン
510 :
名無しさん@そうだ選挙にいこう :2007/05/21(月) 00:40:11
失礼します。 中学校数学における文字式の計算ですが,エクセルでも 簡単な数式処理は可能でしょうか? たとえば, 2a + 3a = 5a などの計算をエクセルに担当させたいのです。 環境は以下の通りですので,ご回答よろしくお願いします。 【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 文字 エクセル 計算
511 :
504 :2007/05/21(月) 00:41:33
減算出来ました ありがとうございます
>>507 >対象範囲と同じ大きさの空範囲を選択して、100を入力しCtrl+Enter
空範囲の左上セルに
=対象範囲の左上セル-100
でCtrl+Enterでおk
それを貼り付けるぐらいなら
>>508 かね
>>513 VBAを利用してもやはり不可能でしょうか?
>>514 VBA使えば可能だよ
何ならユーザー定義関数作ってしまうと良い
誤爆スマソ
>>515 ありがとうございます。
ネットでフリーの文字式計算用のVBAを探しているのですが,
なかなか見つからないもので書き込みをしました。
518 :
510 :2007/05/21(月) 01:15:12
>>518 数式のパース処理を自作するなら、どこまで対応させるかによって
プログラムの難易度は全然違ってくる。
例えば、
3(2a - 4) + 5a = 11a - 12 とか
a^2 + a(5a - b) + ab(c + d + 2) = 6a^2 + ab + abc + abd
のような計算にも対応が必要なら、必要なプログラムはかなり高度になる。
VBAは探すものではなく「作る」又は「書く」ものだからな
522 :
名無しさん@そうだ選挙にいこう :2007/05/21(月) 08:54:54
523 :
名無しさん@そうだ選挙にいこう :2007/05/21(月) 09:57:13
XP、エクセル2003、VBA初心者です。 顧客データから単票シートに呼出をしたいのですが、 規則性の無いセル(例えばF2、D6、D4、I4・・・・)が100弱有ります。 これらのセルに別シートから取得した値(個数はやっぱり100弱)を順番に入れるには? 以下の様に作って見ましたが、記述法がわかりません。 何か良い方法が有れば教えて下さい。 '呼び出す列を変数「yobretu」として宣言 Dim yobretu As Byte '指定のIDに対応するデータシートの内容(操作シートに入力する値)を「yobareta」と定義 Dim yobareta For yoburetu = 2 To 83 yobareta = Application.WorksheetFunction.VLookup(Worksheets("単票").Range("P2"), _ Worksheets("データ").Range("A:CD"), yoburetu, False) Worksheets("単票").【この部分が分かりません】 = yobareta Next yoburetu
524 :
名無しさん@そうだ選挙にいこう :2007/05/21(月) 10:47:54
マクロ作成の相談もここで良いのか? 知らなかった。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 タテヨコ軸の入れ替えを一気にやる方法ってありますか? セルの位置で表現するとこういうことです。 12345 あいうえお アイウエオ ABCDE ↓ 1あアA 2いイB 3うウC 4えエD 5おオE 手作業のカット&ペーストでやれるような少ないセル数ではないので、 なにか楽な方法があればと思いまして。 どなたかよい知恵がございましたらアドバイスください。 どうぞよろしくお願いいたします。
VBA初心者と言いながら、実際はVBA入門者以前だな まずは入門者の位置までは自力で来てください そうでないとお互い話すら伝わりません
>>525 編集⇒形式を選択して貼り付け⇒行列を入れ替えるにチェック⇒OK
>>527 サンクス!
こんな初歩的なことにいままで気づかなかった自分が恥ずかしい...................oTL
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 excel 行 制限、スクロールなどなど 複数のセルを選択するとき、現在既にあるデータ以上にスクロールさせると勝手に行や列が増えていく仕様がありますが、 これを無くしたいのですがどうしたらいいでしょう
仕様が気に入らないなら、Excel使うのやめればいい
531 :
名無しさん@そうだ選挙にいこう :2007/05/21(月) 22:46:15
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 生まれたての赤ん坊 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 チェックボックス チェックボックスのオン・オフで飛び飛び複数行の表示・非表示の仕方がわかりません よろしくお願いします。
飛び飛びでない場合と同じです 一つの命令では無理な場合があるので、必要なだけ分けるかループにします
相談したい事があるんですが、恐らく実ファイルを参考にしながらでないと上手く説明できません。 **.xlsをupできるところの紹介から相談させて頂いていいでしょうか? 教えていただければすぐにup出来ます。 面倒おかけしますが、よろしくお願いします。
>>533 それくらい自分で探す努力をしてくれよ。
いいから書け 書いてるうちに自分でも整理できるから
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 生まれたての小鹿レベル 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 データベース アクセスで作ったごく単純なmdbファイルにVBAでエクセルからデータを書き込み&抽出してるんですが、 エクセルには外部データの取り込みとかMSクエリとかって機能がありますよね あれってどういうときに使うんですが?一覧取得の際に便利に有効活用できるならしたいんですが
537 :
533 :2007/05/22(火) 03:01:17
遅くなりました…うたた寝してしまってました。 では、とりあえず書いてます。 営業成績の表を作ってるんですが A行:日にち B行:売り上げ目標 C行:営業実績 D行:総売り上げ目標に対する達成率 E 行:到達率(当日までの達成率) それぞれ上から下に伸びています。 A〜C行は純粋に数字が直接入力されていまして、 D: =IF($D$7:D7<>0,D7/C7,"") … =IF($D$7:D29<>0,D29/C29,"") E: =IF($D$7:D7<>0,SUM($D$7:D7)/SUM($C$7:C7),"") … =IF($D$7:D29<>0,SUM($D$7:D29)/SUM($C$7:C29),"") となっています。これはこれでひとまず思い通りの答えが出てるんですが D行/E行のそれぞれ一番下には割合(%)ではなく実際の”差”を表示させたいんです。
538 :
533 :2007/05/22(火) 03:04:23
続きです。 D行最下列は =D30-C30 (売り上げ実績-売り上げ目標)で、総売上目標に対しての差が計算出来るんですが E行最下列に ”当日までの目標に対する当日までの売り上げ実績との差” が欲しいんです。 (その日までの売り上げ)-(その日までの目標の合計) という事になるんですが、この数式を教えて貰えませんでしょうか? 売り上げ目標を毎日一日ずつ入力していってれば何てこと無いことなんですが、 売り上げ目標は月の初めに20日分、上から全て入力された状態です。 解りにくく長い説明になってしまいましたが…よろしくお願いします。
>>537 まずは行と列を理解しようね。
A,B,C,Dは列(A列、B列)、1,2,3,4は行(1行、2行)。
夜勤明けだから脳内変換するだけで精一杯だよ。
>D:
>=IF($D$7:D7<>0,D7/C7,"")
> …
>=IF($D$7:D29<>0,D29/C29,"")
(中略)
>これはこれでひとまず思い通りの答えが出てるんですが
嘘つけ〜っ!循環参照になってまともな値が返るはずない。
悪いけど脳みそが半分寝てるんです。どう間違えているのか見当付きません。
修正してちょ。
>D行/E行のそれぞれ一番下には割合(%)ではなく実際の”差”を表示させたい
一番下って言うのは、最後に入力した行と言うこと?
それなら、元の計算式が割合を求めるように作ってあるんだから無理。
もう1つIF関数を使って差の計算式を加ましょう。
条件は「下のセルが空白なら差の計算式、空白でなければ割合の計算式」
>>538 >(その日までの売り上げ)-(その日までの目標の合計)
COUNTA関数かCOUNTIF関数でC列に何個データが入力されているのかを調べて
OFFSET関数でセルを指定して計算できる
=SUM(OFFSET(C7,0,0,COUNTA(C7:C29),1))-SUM(OFFSET(B7,0,0,COUNTA(C7:C29),1))
540 :
名無しさん@そうだ選挙にいこう :2007/05/22(火) 09:28:24
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル 図形 フリーフォーム エクセルで図形を描いているんですがフリーフォームだとALTキーを押しながら書くと セルの交点を捉えられると思ったんですが(以前はできたので) 今回描いていたらそれが出来なくなってしまいました。 直線などでは出来るのですがフリーフォームに限ってできません。 セルの書式設定などは全くいじってない状態です。 何が違ってフリーフォームだけできないんでしょうか?
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 excel rank 色 5つランクの結果に上位3つを@のような丸文字で かこみたいのですがユーザー定義をどういじっても 出来ません。どなたか教えて下さいませ。
542 :
533 :2007/05/22(火) 11:45:12
>>539 夜勤お疲れさまです。
列と行が逆さまでしたね、紛らわしくてすいません。
指摘、ありがとうございます。
やはり上手く伝えられないので、今夜帰ったらUPできるところ探してみます。
その時はまた添削お願いします。
543 :
名無しさん@そうだ選挙にいこう :2007/05/22(火) 12:10:46
EXCELが急に使用できなくなりました。 何か、「ディスクを入れてください」とかいう メッセージがでます。 どういうことでしょうか?
入れろよ
>>545 おかしくなる直前の操作やWindowsの挙動など書かないと
誰も答えようが無いと思いますよ。
あと、おかしくなったのはEXCELかもしれませんが、
スレ違いだと思うのでWindowsスレとかの方が良いと思います。
>>540 フリーハンド、フリーフォームでは、元からグリッド吸着は出来ないけど
以前は出来たってのは君の勘違いだろうな
フリー線というものの特徴を考えたら、グリッド吸着は出来なくて当然だし
>>543 Office(Excel)のディスク入れろ
それでもダメならOffice(Excel)再インストール
それでもダメならOSクリーンインストール後にOffice(Excel)再インストール
ディスク無い場合の対処法は、割れユーザーを助長しない為にも教えられないので
ディスク無くてもどうにか出来る方法教えてとかは無しの方向で
XPのエクセル2000です。 Sheet2の数値をSheet3に貼り付けたいのですが、助けてください。 Sheet2の数値は、52項目の列数にデータが3行目以降につめて書かれています。 何も書き込まれていない行の1つ上までをコピーして、Sheet3に貼り付けたいです。 Sub データ移行() Dim 列 As Long Dim 行 As Long Sheets("Sheet2").Select For 行 = 3 To 40 For 列 = 1 To 52 If Cells(行, 列) = "" Then Next 列 If 行 <> 3 Then Sheets("Sheet3").Select 'コピー Sheets("Sheet2").Select Rows(" 3 : 行 - 1").Select Selection.Copy '貼り付け Sheets("Sheet3").Select Rows("5:5").Select Selection.Insert Shift:=xlDown ActiveWindow.LargeScroll Down:=1 End If Else Next 行 End If End Sub '実行すると列に対応するForがないと言われます。
>>547 携帯からだからコードがよくわからんが
最後の「Next 行」の下の
「End If」じゃないの?
549 :
547 :2007/05/22(火) 19:05:49
>>548 レスありがとうございます。
具体的にEnd Ifをどのように変えれば・・・・・・?
>549 文法が無茶苦茶・・・。
551 :
548 :2007/05/22(火) 19:16:38
>>549 どうってか…
携帯からみるときちと入れ子(ネスト)されてないんだけど?
forの外にIfがないのに
end ifが出ててない?
>>547 Sub データ移行()
Dim 列 As Long
Dim 行 As Long
Sheets("Sheet2").Select
For 行 = 3 To 40
For 列 = 1 To 52
If 行 <> 3 Then
'やりたいこと
End If
Next 列
Next 行
End Sub
こんな感じ?
553 :
547 :2007/05/22(火) 19:34:43
みなさんありがとうございます。 もう一度、修正してきます。
Forでまわしてんだから >If 行 <> 3 Then >End If っていらなくね?
オートフィルタは一カ所しか作れない?
>>547 インデントをチキンと取らないと訳が分らなくなるぞ。
For 行 = 3 To 40
For 列 = 1 To 52
If Cells(行, 列) = "" Then
If 行 <> 3 Then '←不要
Sheets("Sheet3").Select '←不要
Sheets("Sheet2").Select
Rows(" 3 : 行 - 1").Select '←" 3 : " & 行 - 1
Selection.Copy
Sheets("Sheet3").Select
Rows("5:5").Select '←上と1行にまとめる
Selection.Insert Shift:=xlDown
ActiveWindow.LargeScroll Down:=1
End If '←不要
Else '←不要
Next 行 '←不要
End If
'ここに Next が無い
'ここにも Next が無い
557 :
547 :2007/05/22(火) 20:20:04
>>556 ありがとうございます。
手直ししてみます。
558 :
名無しさん@そうだ選挙にいこう :2007/05/22(火) 22:27:37
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】演算子 含む AN2が"A"or"B"を含む場合には○○をするといった構文を作りたいのですが、 どのような構文になるんでしょうか?
559 :
名無しさん@そうだ選挙にいこう :2007/05/22(火) 22:39:25
【1 OSの種類 .】 Windows XP Home 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Excel 時間 合計 Excel2007の97-2003形式のファイルで作業してまふ。 機械の運転時間合計を計算したいのですが・・・。 例えば、10000時間+110時間の単純な和算ですが出来ません。 セル書式設定は [h]:mm になっているのですが、 数式バーには 1900/1/6 10:30 のような西暦表示になっています。 10000時間っていうのが、Excelでは認識されていないのでしょうか?
>>558 If InStr(AN2,"A") > 0 or InStr(AN2,"B") > 0 Then
'やりたいこと
End If
とか
If AN2 Like "*[AB]*" Then
'やりたいこと
End If
とか
>>559 時間も日付もシリアル値という同一の表現で表しているExcelの都合でそうなってるのだと思います
計算結果はあってると思いますけどどうでしょう?
>>558 チョット不細工だな・・・。
=IF(AND(ISERROR(SEARCH("a",AN2,1)),ISERROR(SEARCH("b",AN2,1))),"無い","在る")
563 :
533 :2007/05/22(火) 23:15:09
丸投げうぜえ
565 :
533 :2007/05/22(火) 23:32:30
>>565 D1=IF($C$2:$C2<>0,C2/B2,"")
E1=IF($C$2:$C2<>0,SUM($C$2:$C2)/SUM($B$2:$B2),"")
E25=SUM(B2:INDIRECT("b"&(COUNT($C$2:$C$24))+1))-SUM($C$2:$C$24)
でどうだ?
>>565 >>564 の
E25=SUM($C$2:$C$24)-SUM(B2:INDIRECT("b"&(COUNT($C$2:$C$24))+1))
に訂正
>>539 に答え書いてあんじゃん
最初の質問と範囲が違うから訂正するとこんな感じか?
=SUM(OFFSET(C2,0,0,COUNTA(C2:C24),1))-SUM(OFFSET(B2,0,0,COUNTA(C2:C24),1))
>>567 でもOKっぽいけど
せっかくレスくれてんだから試せばいいのに。
569 :
名無しさん@そうだ選挙にいこう :2007/05/23(水) 00:11:41
ごまかし手法で試したが上手くいかないのでお助け 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 凡例 順序、凡例 順番 データ系列Aとデータ系列Bがあって、AはY主軸、BはY第軸、X軸の項目は同一 Aは折れ線(または散布図)、Bは棒(縦)というグラフを作成したいのだけど 凡例がグラフの優先表示順序になってしまい、上からBの凡例、Aの凡例となってしまう オートシェイプ等無しで、どうにかして凡例の順序をA、Bと並べたいのだけど どうにかなる手立てはないでしょうか。
570 :
569 :2007/05/23(水) 00:19:29
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 NO 【4 VBAでの回答の可否】 YES 【5 検索キーワード 】 セル 選択 セルの上にオートシェイプ等を置くとその下のセルがうまく選択できません。 これをショートカットキーか何かを押しながらだと、下のセルを選択できるといったことはないでしょうか? いまは隣のセルを選択して、カーソルキーで移動させています・・・
572 :
名無しさん@そうだ選挙にいこう :2007/05/23(水) 02:36:29
Excel2003を使っています。 計算式で出た値の小数点以下を切り捨てしたいのですが、 どうすればいいのでしょうか? そのままにしていると四捨五入されてしまいます。 (もうシートに数が入力されてしまっているので・・・)
>>572 マルチは止めようね。
アッチのスレで答え貰ってるヤン。
574 :
名無しさん@そうだ選挙にいこう :2007/05/23(水) 02:47:26
>>573 すいまそん
明日の会議にもって行きたい資料のデーターを作成中のため、
めっちゃ焦っているのです・・・
>>574 そんな個人の事情が人に迷惑をかけてもいい理由になるのかい?
576 :
名無しさん@そうだ選挙にいこう :2007/05/23(水) 10:39:10
Excel2002です。 ショートカットキーが思い出せず、検索してもヘルプを見ても いまいちわかりません。 検索しながらデータをいじりたいのですが、 途中でマウスを使いたくありません。 検索ウィンドウからデータの方にショートカットで移動するには どうしたらいいんでしたっけ・・・どなたか教えてください。
[ctrl]+[f]かな
578 :
576 :2007/05/23(水) 11:04:38
>577 わかりにくくてすいません。検索ウィンドウの出し方ではなく、 検索ウィンドウが出ている状態で、マウス無しで データと検索ウィンドウを行き来したいんです。
Alt+Tab と Alt+Shift+Tab で、検索ウィンドウとワークシートを行ったり来たり出来る 当然Excel以外のウィンドウも切り替え対象になるけど Ctrl+F と Esc で、検索ウィンドウを出したり消したり出来る
580 :
576 :2007/05/23(水) 11:12:34
>579 なるほど。ほかのアプリ落としときゃいいのか。 ありがとうございました!!
582 :
名無しさん@そうだ選挙にいこう :2007/05/23(水) 11:44:03
Excel2007で、選択した範囲のセルの色が薄くて、選択したかどうか分らないんですけど… 何か解決方法ありませんか?
A2のセルの中の任意の数字(例1000)をマクロ内の変数Int_Aに代入したいのですが どのようにすればよいのでしょうか? マクロの記録からA2の数字をコピーすると Range("A2").Select ActiveCell.FormulaR1C1 = "1000" というように1000というように一意に決まってしまいます。 これを Range("A2").Select ActiveCell.FormulaR1C1 = "A2" Int_A = ActiveCell.FormulaR1C1 のように書きたいのですが。どなたかお願い致します。
Int_A = range("A").value じゃいかんの?
>>581 質問者本人乙
(どうせ口先では否定するだろうけど)
>>569 似たような事やったことあるが無理
仕様上グラフ内での表示面積が大きい種類が凡例上位に来る
面、棒、線、散布 みたいな感じ
588 :
名無しさん@そうだ選挙にいこう :2007/05/23(水) 16:52:35
Excel2003で、ハイパーリンクを設定した文字の上に(アクセスするのではなく) カーソルをもっていくと文字の色が変わるようにしたいんですが。 もしできるようでしたら教えてください。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 いいえ 【5 検索キーワード 】 オートシェイプ オートシェイプで円や線を書くと、2つめ書くのにいちいちもう一度選択し直さなければなりません。 繰り返して同じオートシェイプを使うのに、何かショートカットキーはありませんか?
590 :
名無しさん@そうだ選挙にいこう :2007/05/23(水) 20:18:46
ここでいいのかわかりませんが質問します。 Excelに代わるソフトを探しています。 Excelの行数(256?)の制限がうっとうしいのです。 512行程度使えるもので、多少の計算ができるものあればなんでもいいのですが、 ご紹介いただけますでしょうか? そんなソフトがないならないの助言でも結構です。
591 :
名無しさん@そうだ選挙にいこう :2007/05/23(水) 20:28:17
エクセルの行数が256って、いつのの話?
>>590 普通につかえるし、列の間違いなら2007使え
>>590 ???Excel2000でさえ65536行も使えるというのに・・・。
594 :
名無しさん@そうだ選挙にいこう :2007/05/23(水) 20:45:54
590です。 列の間違いでした。現在2003を使っています。 2007ですね。
>>590 うちの会社は見積もりにExcel2003を使っているけど、セルへの代入は
VBAを使って記述してるよ。何段にも表を下に重ねていけば横はそんなに
いらないしな。いざとあればページを増やせばいいし。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 「excel 初心者」「excel オートフィルタ 結合」 すいません。下記のような、回答者の名前つきのQ&Aがありまして 「回答者」の行は、「Q」が入っている行と「A」が入っている行を結合してあります。 (A2とA3、A4とA5、A6とA7・・・がそれぞれ結合してあります) A B C 1│回答者 │ │質問・回答内容 ├────┼────┼──────┼ 2│田中 │Q │今何時? │ │ ├────┼──────┼ 3│ │A │5時です │ ├────┼────┼──────┼ 4│佐藤 │Q │何する? │ │ ├────┼──────┼ 5│ │A │何も。 │ ├────┼────┼──────┼ 6│田中 │Q │いくら? │ │ ├────┼──────┼ 7│ │A │200円です │ ├────┼────┼──────┼ この時、「回答者」でオートフィルタをかけて「田中」を指定してもQの行だけが出てきてしまいます。 A B C 1│回答者 │ │質問・回答内容 ├────┼────┼──────┼ 2│田中 │Q │今何時? │ ├────┼────┼──────┼ 6│田中 │Q │いくら? │ │ ├────┼──────┼ 「田中」を指定したときに、田中のQ&Aを両方表示できる方法はありませんでしょうか?
>>598 実現したい目的に対する表組みの設計がそもそも間違えてないか?
そっちの改善を検討した方がいい。
例えば
A列:回答者
B列:Q
C列:A
とするとか。
うんうん、【閲覧表作成】の思考回路で【計算表作成】をしてるよね 表だけならワープロでもCADでもDrawソフトでも書けるのに なぜ表計算ソフトというものが存在し、これほど多く使われているのか考えてみよう
確かにそうですね・・・一番最初にこのフォーマットを作った人を恨みます。 (私は前任からこの表を引き継いだだけなので、さっさと作り変えます) 一応、対処法は自分で思いついたので自己レスしておきます。 D2に「=A2」を入力して一番下までオートフィル、で、D列でオートフィルタをかける
602 :
名無しさん@そうだ選挙にいこう :2007/05/23(水) 23:11:38
すいません 人の作った表をマウスでクリクリスクロールさせてると、 ある行に来たところで行番号と列記号の部分が ヒュッっと細くというか小さくなることがあるんだけど これは何だかわかりますか? 困ってるということではないんですが、 いつも気になってます。
603 :
名無しさん@そうだ選挙にいこう :2007/05/23(水) 23:16:36
590です。
>>597 今回の場合、横をかなり使うから問題なわけでして。
別シートにすればいいのだが、やりたいことは”昇順に並び替え”とか。
これについては、”すべてのシートを選択”しても
”昇順に並び替え”の機能を使うことができない。
これができれば512列もいらないのだが。
ちなみに2007は16000列(100万行)まで使えるようです。
605 :
名無しさん@そうだ選挙にいこう :2007/05/23(水) 23:48:20
誰か教えて下さい 小数点のだしかたなんですが 例えば 1857 1525 5263 と打ってセルをまとめて 小数点をそろえて 185.7 152.5 526.3 な感じにする事はできますか? やり方が解りません
>多少の計算ができるものあればなんでもいい >やりたいことは”昇順に並び替え”とか これを条件の後出し といいます。
>>605 たとえば・・・
A B
1 1857 10
2 1525 10
3 5263 10
B列(の必要範囲)に「10」を入力
B列(の必要範囲)を選択⇒コピー
A列(の必要範囲)を選択⇒編集⇒形式を選択して貼り付け⇒貼り付け「すべて」と演算「除算」をチェック⇒OK
・・・とすると
A B
1 185.7 10
2 152.5 10
3 526.3 10
ってな感じになるからB列を削除する。
608 :
名無しさん@そうだ選挙にいこう :2007/05/24(木) 00:51:26
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】いいえ 【4 VBAでの回答の可否】 可 イベントマクロが実行されるタイミング等に関する質問をさせてください。 セルに値を入力するとシートイベントマクロが実行されますが、 1.セルをアクティブ(キャレットが出ている状態)にして、何も入力せずにエンターを押しても イベントマクロが実行されます。 2.また、値のクリア等の処理を行っても実行されます。 これはエクセルの仕様だと思いますが、マクロを用いて上の1.2.の場合のみ イベントマクロを実行しないようにする方法がもしあれば、教えてください。 どうぞよろしくお願いします。
609 :
名無しさん@そうだ選挙にいこう :2007/05/24(木) 01:14:13
>>604 Microsoft Office 2003と同じ仕様で出来ない。
が、Kingsoft Officeに感心した。
611 :
名無しさん@そうだ選挙にいこう :2007/05/24(木) 01:53:00
>>607 さん
出来ましたo(^-^)o
ありがとうございました
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 エクセル 計算 の時だけ [A:1]に入力した品物の単価を[B:1]に表示させて[C:1]に個数を入力し、 [B:1]の値と[C:1]の数字の計算結果を[D:1]に表示させてるのですが、 [A:1]に入力した文字が品物以外の物で単価がない時、[B:1]・[D:1]に何も表示させない方法ってありますか? [A:1]はドロップダウンリストから選択 [B:1]=IF(A1="","",(VLOOKUP(A1,C60:D108,2,0))) [C:1]は直接入力 [D:1]=IF(COUNT(B1:D1)=0,"",SUM(B1*C1)) これだと[A:1]が品物以外の場合、[B:1]・[D:1]に0と表示されています。
613 :
612 :2007/05/24(木) 10:21:22
○ [D:1]=IF(COUNT(B1:C1)=0,"",SUM(B1*C1)) × [D:1]=IF(COUNT(B1:D1)=0,"",SUM(B1*C1)) でした。。。
=IF(B1*C1=0,"",B1*C1)
615 :
612 :2007/05/24(木) 11:30:50
>>614 なるほど・・・。sumは簡単な計算なら削ったりもできるんですね。
ありがとです。
>>612 A列はリスト以外入力できないようにしておけばOK
B1にゼロが出るのはリストにある品物で表に単価が入って無い物だけだと思うけど・・・一応
B1=IF(OR(VLOOKUP(A1,$C$60:$D$108,2,0)=0,A1=""),"",(VLOOKUP(A1,$C$60:$D$108,2,0)))
D1=IF(SUM(B1)*C1=0,"",B1*C1)
↑SUMがあるのはB1=""の場合にB1*C1をやると#VALUE!がでるハズなので予防策。
617 :
612 :2007/05/24(木) 13:46:28
できました! ありがとです。
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 初めまして、ショートカットキー(?)について質問させてください。 連続して入力されている縦列で「Alt」+「↓」を押したときに、そのセルまでの 入力データがリスト化されてたものが表示されます。 ですが、このときに途中で空白セルがあるとそこでリストは途切れるみたいです。 これを回避したいのですがどのような方法があるでしょうか? 空白セルに「’」や「スペースを入力する」という方法は無しでお願いします。 これから出勤しますのでご返事は深夜になると思います。 分かりにくい文章で申し訳ありませんが、よろしくお願いします。
619 :
618 :2007/05/24(木) 14:01:07
すいません、書き忘れてました。 「入力規則」でリスト化したものを「Alt」+「↓」で表示させるのではなく、 あくまでもそれまでのセルに入力したものをリスト化させる、ということでお願いします。
621 :
名無しさん@そうだ選挙にいこう :2007/05/24(木) 16:01:27
【1 OSの種類 .】 WinXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 セルに入力した数値をある桁数で強制的に切り捨てしたいのですが 関数を使わず、入力した元のデータ自体も切り捨てるにはどうすりゃいいんでしょう? ex. 「0.12345」と入力すると、セルの表示も数式内も「0.123」になる
622 :
621 :2007/05/24(木) 16:43:11
っと、自己解決した ツール→オプション→計算方法→表示桁数で計算する だった
623 :
名無しさん@そうだ選挙にいこう :2007/05/24(木) 19:38:30
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 A列に順番に番号が入っている状態でB列にA列の値を引用した文をつくりたいのですが、B列にどんな書き方をすれば良いのか分かりません。 具体的には下のようなB列をつくりたいのですが、うまくいきません A列 | B列 一郎 |わたしは一郎です 裕子 |わたしは裕子です ・ ・ ・ ・ (以下延々とデータが続く)
自己解決は目出たいが、ちゃんと【切捨て】になっているんだらうね。
例題を元に 一郎さんが1行目なら ="わたしは"&A1&"です" であとはコピーすればおk? 文字の連結は&を使用
626 :
名無しさん@そうだ選挙にいこう :2007/05/24(木) 19:51:23
>>625 できました!ありがとうございました
VBAでは見慣れた”や&でしたが、普通のシートで使うことを思いつきませんでした・・・
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 ピボットテーブル グループ化 最近使ってないファイルを整理(思い切って削除)するため、 各ファイルの参照日と更新日を調べています。 A列:ファイル名 B列:直近の参照日付 C列:直近の更新日付 さらに、そもそもディレクトリ自体使われてるかどうかの目安として 「最近のアクセス時期」をまとめる必要ができました。 D列には「最近使った日」の目安として =MAX(B1,C1) (1行目のとき)としました。 最近のアクセス時期をまとめる分析のため、 列:指定なし 行:D列 値:A列(データの個数) というピボットテーブルを作りました。 ここで、ピボットテーブルの行を月ごとにまとめて 5月中に使ったファイルは○個、最近使ったのが4月のファイルは○個、3月のは…… としたいのですが、「グループ化」のピボットグラフメニューで月ごととかそういう選択ウィンドウが 開きません。 関数の戻り値はピボットテーブルにとって日付と解釈されない、と言うことなのでしょうか? どうにかして日付として解釈させる方法はありませんか?
>最近使ってないファイルを整理(思い切って削除)するため、 に対して、やってることの大半が無駄な点は気にしないのか。
フォルダを詳細表示にして日付順に並び替えれば使ってないファイルがフォルダの中で一箇所に集まると思うのは俺だけか?
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 どうぞよろしくお願いします。 12 33 45 92 43 21 ・ ・ ・ こんな感じで並んでる、ある列の各データの対数(LN)をとって出力させたいんですが、 これを一気に計算させる方法ってないでしょうか? 今までは一つ一つの項に関数を手打ちしてました。助けてください。
>>629 それ以前に、Explorerのファイル検索で、ファイル更新日や
アクセス日を条件に全ドライブ検索をすれば良いだけの話。
632 :
618 :2007/05/24(木) 23:50:53
会社で色々試してましたら自己解決致しました。 お手数おかけしました。
633 :
名無しさん@そうだ選挙にいこう :2007/05/25(金) 00:32:42
ブック単価表にワークシートaがあり、A列に品名、B列に単価がはいり ブック売上票にワークシートbがあり、当日売上のデータがA列に品名、B列に個数がはいっているとき、 ブック売上票のC列に対応する単価を表示させたいのですが、findを使うだろうというぐらいしかわからないこと、ファイル関係の表示方法もわからないので、vba丸投げでお願いします。投稿は深夜となりましたが日中に相手にしてください。
634 :
名無しさん@そうだ選挙にいこう :2007/05/25(金) 00:42:44
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】? 【4 VBAでの回答の可否】? 【5 検索キーワード 】折れ線グラフ(?) 折れ線グラフの作り方について、質問です。 ひとつの データは、調査年度が1978年から5年ごと。 もうひとつのデータは、調査年度が1980年から5年ごと。 これを、ひとつのグラフのなかに納めることはできますでしょうか? よろしくお願いいたします。
635 :
630 :2007/05/25(金) 00:45:34
解決しました。ありがとうございました。
637 :
名無しさん@そうだ選挙にいこう :2007/05/25(金) 07:17:20
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 ユーロ? レート変換 単価×数量をユーロに変換して、3桁でカンマ区切りで少数点第2位までの 計算方法を教えて下さい。
638 :
名無しさん@そうだ選挙にいこう :2007/05/25(金) 08:12:27
>>637 =ROUND(単価×数量×ユーロレート,2)
or
=TEXT(単価×数量×ユーロレート,”#,###.00”)
>>635 誰も返答してくれなかったね。
あくびが出るほど単純な質問だったの、気づいた?
640 :
名無しさん@そうだ選挙にいこう :2007/05/25(金) 10:21:08
一通り関数見てみましたが、それっぽい物が見つけられないので質問します。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 不可 【5 検索キーワード 】 Excel 関数 Count 文字数 セル内に「&」がいくつか任意の文字と一緒に入っている。 &の数を出すにはどうすればいいでしょうか。 A1の内容 top&no&id&&& A2の内容 top&&&&&
=LEN(A1)-LEN(SUBSTITUTE(A1,"&",))
642 :
641 :2007/05/25(金) 10:38:53
>>640 あたた、説明文入れるの忘れた
SUBSTITUTE関数で&を空白に置き換えてLEN関数で元の文字列の長さと比較する
VBAとか使ってると (A1,"&",)みたいな書き方は気持ち悪い (A1,"&","")って書きたくなる この方が可読性上がるし
644 :
640 :2007/05/25(金) 10:51:15
>>641 あ。なるほど〜〜!!!!
そういう考え方か・・・
ありがとうございました。
>>627 現実的な回答は皆から寄せられているので、あくまで手法として
元データのD列って日付の書式設定してる?
646 :
名無しさん@そうだ選挙にいこう :2007/05/25(金) 12:03:04
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 Sub Macro3() Workbooks.OpenText Filename:="C:\1.txt", StartRow:=1 _ , DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(4, 1), Array(10, 1 _ ), Array(19, 1), Array(28, 1), Array(35, 1), Array(40, 1), Array(45, 1), Array(50, 1), Array _ (55, 1)) Columns("B:I").Select Range("I1").Activate Selection.SpecialCells(xlCellTypeConstants, 22).Select Selection.EntireRow.Delete End Sub マクロの記録で上のを取り込んだのですが Selection.EntireRow.Delete ここの部分で 実行時エラー1004 重複する選択範囲に対してそのコマンドを使用することはできません ってエラーが出ます。 記録したマクロをいじってなくてもエラーが出るのですが解決策はないですか? やりたい操作としては 1.txtをスペース区切りで開いてB:Iの中で定数の数字以外を選んでその行全体を削除 です
647 :
名無しさん@そうだ選挙にいこう :2007/05/25(金) 12:16:51
一時変数を使わない整数の入れ替えだと思うんだが #define swap(a,b) a^=b^=a^=b これってVBだとどう書くの?
>>647 そういう関数作ればいい
当然関数の中では一時変数使うけど
>>647 だって内部的に見えないところで一時変数使ってるわけだし
>>647 なんかそれと意味は違うかも知らんけど
a = 5
b = 2
b = a + b
a = b - a
b = b - a
650 :
名無しさん@そうだ選挙にいこう :2007/05/25(金) 15:00:33
突然すみません。 Excelの関数計算のところなんですが、IFの操作の仕方が全く分かりません。 成績を出すやつなんですが 100〜90(点数)の人数を出すためにはどうしたらいいのでしょうか?
651 :
名無しさん@そうだ選挙にいこう :2007/05/25(金) 15:04:50
あれれ? countifで =countif(範囲,">=90") じゃないの?
653 :
647 :2007/05/25(金) 16:16:01
655 :
名無しさん@そうだ選挙にいこう :2007/05/25(金) 17:44:40
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 ActiveSheet.ChartObjects("グラフ 1").Activate これのグラフ 1のところの1を変数にしたいのですがどう書いたらいいんですか? ("グラフ " & F & """) とかいろいろ試したけどエラーになってしまいます
656 :
名無しさん@そうだ選挙にいこう :2007/05/25(金) 18:54:45
634です。
>>636 ありがとうございました。御礼が遅れ、失礼いたしました。
さっそく、トライします。
657 :
655 :2007/05/25(金) 20:25:28
自己解決 ActiveSheet.ChartObjects("グラフ " & F).Activate でいけました 変数は""で囲まなくてもよかったのですね
658 :
627 :2007/05/25(金) 21:19:13
>>645 D列の書式は、ユーザ定義で yyyy/mm/dd としていました。
日付書式から選択する必要がある、と言うことでしょうか。試してみます。
現実問題として作業手順がおかしい、という皆様の指摘も尤もです。
リモートファイルの一覧だけ渡された、とか
実は削除以外にもオプショナルなアクションを起こす場合がある、とか
余分な条件があったので、回りくどい手順をかける必要がありました。
余分な条件を省いて状況説明をしようとしたら、かえって不自然になってしまいました……。
659 :
633 :2007/05/25(金) 21:29:21
>>633 です。どなたか、教えてください。よろしくお願いします。
>>659 だれも相手にしてくれないね。
vbaを使いたいの?
vlookupにしときなさい。悪いこと言わんから♥
普通、品名以外に品コードを使ったりするんだろうけど。
>>660 そのやりかたじゃ、商品マスタの単価が変化した場合にエラーが起きる。
(過去の売上金額が現在の単価をベースに計算されちゃうから)
それを防ぐために、売上日ごとの単価情報を複製保持させておきたいと
いうことだろう。
俺も回答する気はないが。
662 :
名無しさん@そうだ選挙にいこう :2007/05/25(金) 21:54:46
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel200 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】ウェーバー比 グラフ Excel 「ウェーバー比のグラフの作り方を教えてください。」 生物の授業で圧覚のデータを取りました。 基礎刺激量xと変化量yのデータは揃ったのですが ここからウェーバー比のグラフを作らなければなりません。 ウェーバー比は、【y/x=(ある範囲で)一定】という意味だそうです。 ノートには y=ax+b(ウェーバー比)、γ=0〜1(相関関数) とメモしてあります。 グラフは、分布図の点の中に比例の直線が描かれているようなイメージになるようなのですが エクセルでどう作ればいいのかわかりません。 授業ではマック+ロータスを使っていたようなのですが…エクセルでもできますよね? 実験自体よく理解してないかも知れず、意味不明な説明だったらごめんなさい。 脳内補完できる方、よろしくお願いいたします。
データがそろったのなら範囲を選択してグラフウィザードで散布図を選んで終わりじゃないの?
664 :
633 :2007/05/25(金) 22:32:48
>>660 >>661 もちろん、実際には品コードもあります。品名も品コードも扱いは一緒だと思って設問にしましたが、型が異なるのに気づきました。
>>661 その通りです。
設定は一番いい方法と思ったのですが、私のようにVBA入門者レベルでは無理ですね。他の方法を含めて、土日で試行錯誤やってみます。
どうもです。
665 :
662 :2007/05/25(金) 23:01:39
>>663 散布図は作れたのですが、
直線の出し方が分かりません。
手書きで書き加えるのかなぁ…とも考えたのですが
意味もよく分かっておらず;
666 :
661 :2007/05/25(金) 23:55:57
>>664 1から作ったら苦労するだろう。
サンプルみたいなもので良ければ作ろうか?
667 :
名無しさん@そうだ選挙にいこう :2007/05/26(土) 00:04:57
【1 OSの種類 】 Win2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか 】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 その名前は正しくありません 「困ってる事象、やったこと」 名前の定義が削除できません。(エラー:その名前は正しくありません) 定義された名前は文字化けしているようで"・・・印"と表示されています。 Sub ClearAllNames() Dim objName As Name For Each objName In ActiveWorkbook.Names objName.Delete Next objName End Sub ↑試しましたがうまくいきません(同様のエラー発生)。 「背景、解決したいこと」 社内で使いまわされたファイルのようで、かなりの名前が定義されて意味不明の 外部リンクが残っています。(ファイルを開くときに確認をなくしたい) 上のマクロできれいになるものあるのですが、エラーも多発します。 定義で使えない文字種であるケースが多いのですが、多くは手で削除できるのですが、上のケースはなんともなりません。 そもそも、なぜファイル作成者が意図しない名前定義がされるんでしょうか? (社内的には図のリンク貼り付けを多用する傾向があります) よろしくお願いします。
668 :
633 :2007/05/26(土) 00:12:36
>>661 さん、お願いします。
サンプルになるのを求めて、ずっと検索していましたがどうも合わないものしか見つかりませんでした。よろしくお願いします。
【1 OSの種類 .】 Windows xp 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル 連続 データ 法則 皆様、お知恵をお貸し下さい。 BOOK1のA列に1,2,3,・・・・・・500までと連続したデータが入ってるのですが、 それをC列に1,1,1,2,2,2,3,3,3・・・・・・500,500,500,と3行ずつに一気に貼り付ける方法をお教え頂きたく書き込ませて頂きました。 何卒よろしくお願いいたします。
>>665 近似曲線のことか?
使い方はヘルプを参照してくれ
>>668 天麩羅使わない人はスルーがデフォらしいです。
ご愁傷様でした。
672 :
662 :2007/05/26(土) 00:18:44
新しく購入したPCに、Excel 2003をインストールしたのだが、 以前のExcel 2003の設定や環境をそのまま、持っていきたい。 バックアップすべき、ファイル、レジストリを教えてくれ。
674 :
663 :2007/05/26(土) 00:48:43
>>671 このスレにそんな原則はないよ。「できれば」(伝わり、回答しやすい、わかりやすいように)点プレを
使ってねと書いてある。これでも、伝えたいことを正確にするために、設定を単純化して伝わりやすくす
るのに数日かかった。点プレでxp 2003等書いても、この場合、スペースの無駄と思っただけ。
675 :
633 :2007/05/26(土) 00:52:11
前の633の間違い
676 :
662 :2007/05/26(土) 00:57:00
相関係数はCORREL関数で求められました(0〜1の範囲でした)。 しかしどうやらaとbの定数を求めなければならないようで? 近似曲線(線形近似)のオプションで表示した数式のab部分=定数ってことでいいのしょうか なんだか数学できないっぷりを露呈してるだけな気が…
>>674 >>1 ★4 質問テンプレ(雛形)は必須じゃないけど、
OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は『必須情報』
バージョンによって使える機能・関数・メソッドは異なります。
不要な情報ではありません。
お願いする立場なら、指摘には(間違ってると思っても)従うほうが良いのでは?
678 :
677 :2007/05/26(土) 02:11:40
>>674 文句だけ言うのは性に合わないので
Option Explicit
Public buf As Variant, tkrws As Long
Sub tanka_torikomi()
Const tankafile = "C:\Users\kakui\Desktop\単価表.xls"
Dim myrng As Range, i As Long
Workbooks.Open Filename:=tankafile
Set myrng = ActiveWorkbook.Sheets("a").Range("A1").CurrentRegion
tkrws = myrng.Rows.Count: ReDim buf(tkrws, 2)
buf = myrng: ActiveWindow.Close
End Sub
Sub tanka_syuturyoku()
Dim lc As Long, i As Long, mxlc As Long
With ThisWorkbook.Sheets("b")
mxlc = .Cells(1, 1).CurrentRegion.Rows.Count
For lc = 1 To mxlc: For i = 1 To tkrws
If .Cells(lc, 1).Value = buf(i, 1) Then
.Cells(lc, 3).Value = buf(i, 2): Exit For
End If
Next i: Next lc: End With
End Sub
>>669 c列にこれを張る
=INDIRECT("A"&ROUNDUP(ROW()/3,0))
680 :
669 :2007/05/26(土) 03:19:42
>679 有り難うございます。。。感謝です。 ちなみに別シートに貼り付ける場合だと結構複雑な関数に為るのでしょうか?
681 :
661 :2007/05/26(土) 05:32:40
682 :
名無しさん@そうだ選挙にいこう :2007/05/26(土) 07:49:40
>>677 >お願いする立場なら、指摘には(間違ってると思っても)従うほうが良いのでは?
お前は囚人か?
正直、ここの回答者は呆れるほど低レベルな連中も多い。 上から目線で偉そうに受け答えしている奴らほど役に立たない。 そんな状況で >お願いする立場なら、指摘には(間違ってると思っても)従うほうが良いのでは? なんて意見を持ち出したら、オバカさん達が増長して、スレがだんだん腐っていく だろうな。 むしろ、回答する側も読解力、思考力、問題解決能力を養う場だと考えて、 質問者からのフィードバックを真摯に受け止めた方がお互いに建設的じゃないかね。
684 :
677 :2007/05/26(土) 08:28:07
>>682-683 確かに従う必要のない指摘が大半ですね^^;
正しくは、
『万が一 自分のほうが間違ってた時印象が悪いので、(馬鹿な指摘だと思っても)反論する時は腰を低く』
ですかね
お願いする立場なら、指摘には(”自分では”間違ってると思っても)従うほうが良いのでは? ”間違ってる、という考え自体が間違ってることだってよくあることだし” こういう補完をしたんだけど、違うのか?
リロード忘れたときに限って一拍遅れのレスになる、これは間違いなく孔明の罠
>>680 indirect は利用価値高いので、しっかり理解するために、ヘルプを見て自分で考えてみてください。
なお、
"A"&ROUNDUP(ROW()/3,0)は、”A1”の形でアドレスを文字列として取得しています。
この場合はINDIRECTよりもOFFSETの方がいいけどね OFFSETは相対指定だから初心者には難しいのかな?
689 :
661 :2007/05/26(土) 09:24:51
690 :
633 :2007/05/26(土) 10:27:50
>>661 さん、
>>677 さん 他の方もありがとう。
>>661 さん ダウンロードさせてもらいました。最初のをDLするとき、DLマネージャーが起動しなかったことから
変だなと思いスキャン等していました。マクロウィルスが怖いのでDLするかどうか迷っていた最中に前のを削除され
たことがわかりました。DLは自己責任で行うものとわかっていますのでDLさせてもらいました。
私は無神論者ですが、他に言葉がないので、すみません。「貴方に神のご加護がありますように!」と感謝させてください。
これを機会に勉強に励みます。重ねて、ありがとう。
わたし関係ない者ですけどあなた、律儀な人ですね。 きっといい男でしょう。
【1 OSの種類 .】 WindowsXP home 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 書式 時間 エクセル 例えば 2,730:314:06:44:07 という数字を 2730年314日06時間44分07秒と表示するには書式をどのように設定すればよいでしょうか?
693 :
名無しさん@そうだ選挙にいこう :2007/05/26(土) 10:59:25
637です。
お礼を言うのが遅くなりましたが、
>>638 さん どうもありがとうございます。
>>689 関係ないけど見させてもらった。
あなたってカコイイね・・・。
2,730:314:06:44:07 は数字ではありません。
697 :
633 :2007/05/26(土) 12:52:57
>>661 さん
私のレベルを見破って、完璧な説明と結果のものをありがとうございました。
とても、私が半年かけてもできないものです。
追記ですが、いろんな方に役立つと思います。最初のと違い、無制限のDL可とされたので自信も伺えます。
私はマクロウィルスのチェックはAVSで行いました。これは、無料ですが、有料ノートンのでも排除でき
なかったトロージャン・スパイウィルスを退治したものですので、ノーウィルスとしてDLも安心して行え
ます。
本当にありがとうごさいました。
【1 OSの種類 .】 WindowsXP SP1 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 どちらかというと否だけど、必要に応じて 【5 検索キーワード 】 excel 連続 印刷 Excelで特定のシートの一部のデータのみ書き換えて連続して印刷するにはどうすればよいのでしょうか? 具体的には、「生徒ID、生徒名、科目1、点数、科目2、点数・・・」となっているデータ用のシートと あるセルに生徒IDを入力し、それをもとに先のシートからデータを取得して印刷用に体裁を整えた 出力用シートがあるファイルで、 出力用シートにて順繰りに全員分の成績表を印刷したいのです。 生徒IDは必ずしも連番ではなく、飛び飛びになっていたりするので、 データ用シートの生徒IDの列を1行目から順番に参照して印刷する、といったことは可能でしょうか? 以前VBAを本を参照しながらいじったことはありますが、 PHPと違ってどうにも複雑でてこずりました。 単純な記述であれば対応できるとは思いますが、どなたかアドバイスよろしくお願いします。
>>698 VBAを使えば順番印刷までできる。
1つ1つ手動で書き換えるのであれば、関数でも出来ないこともない。
エスパーでないのであなたの文面からではこれ以上のことは言えません。
700 :
名無しさん@そうだ選挙にいこう :2007/05/26(土) 14:52:37
>>692 対象文字列の書式(文字数)が一定なら、個々に抽出して文字を再構築すればできるが、汎用性はきわめて低いよ。
=LEFT(対象文字列,5)&"年"&MID(対象文字列,7,3)&"日"&MID(対象文字列,11,2)&"時間"&MID(対象文字列,14,2)&"分"&RIGHT(対象文字列,2)&"秒"
【1 OSの種類 .】 WindowsXp SP2 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 「マクロ・ボタン・withevents・command・click」 印刷処理を行うコマンドボタンを7つ作りました。 (ツールボックスのボタンを使ったので、コントロールオブジェクト?) 1つのコマンドボタンで この7つのボタンを順次クリックしていく処理を行わせたいです。 7つのボタンに記述したコードをすべてコピーして、 1つのボタンにすべて貼付ていけば事たりるのですが、 今後ボタン処理の変更があった時、手直し作業が重複してしまうので避けたいと思っています。 「マクロの記録」で調べようにもデザインモードになってしまうので処理の記録ができません。 どなたかお願いします。。
サブルーチン化するか呼ぶか
703 :
701 :2007/05/26(土) 17:44:59
>>702 ググってみました。
おかげで解決しました。
『Load』でOkですね。
「サブルーチン」は分からなかったのですが、
「呼ぶ」で「コントロール配列」とか繰り返し処理での「Load」という
キーワードが手に入りました。
多謝!
>>703 解決したんならもういいんだが一応
印刷サブルーチン{
印刷処理Aを実行
印刷処理Bを実行
印刷処理Cを実行
:
印刷処理Gを実行
}
簡単に説明したらこんな感じ。
7つの処理を1セットにしちまうの
705 :
名無しさん@そうだ選挙にいこう :2007/05/26(土) 19:07:46
VBA覚えて日が浅いんだけどメインとかサブみたいに プロシージャは分けて書いたほうがいいの? 今はひとつのプロシージャにずらーっと書いていってるんだけど 処理が重くなったりするのかね? サブルーチンつながりで質問なんだけど変数に入ってる数値を 別のプロシージャの変数に渡す方法を教えてください
Sub test1() dim a as integer call test2(a) end Sub Sub test2(dim a as integer) 〜 end Sub
むかしMSXでbasicをかじったんだけど、VBAには行番号がないのでびっくりしたな。 でもちゃんと機能するから、別に必要ないものだったんだなあ。
懐かしいな。 X68000のHu-BASICでは組みようでは行番号はあまり意味を成さなかったな。 思い出しついでに、X68000のSX-Windowシステムはデザインが秀逸だったな。 あの使い勝手も画期的だったし。
>>705 > プロシージャは分けて書いたほうがいいの?
一概に良い悪いってものじゃない。
分けるべき所、分けない方が良い所は、自分で判断できるようになるしかない。
> 処理が重くなったりするのかね?
一応プロシージャ分けない方が速い軽い。因みに同じ処理を100回繰り返す場合も、
実はループ使って3行で書くより、ずらずらと100行書いた方が速かったりするが
速いから良いコーディングだとは言えない。
>>706 > Sub test2(dim a as integer)
dim要らない、というか入れちゃダメ。
それとCallは使わない方が基準となるので、人に教える場合
特別Callを使う必要が無い処理では使わない方がいいよ。
test2 a
俺も自分だけで使う場合は、可視性向上のために不要でもCallで呼ぶことが多いけど。
【1 OSの種類 .】 Windows ビスタ 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 いいえ 【5 検索キーワード 】 excel 名簿を打ち込んだのですが、あいうえお順やローマ字順に並べ替える方法はありますか?
>>710 > あいうえお順
作業列にフリガナ出して、その列で並び替え
フリガナの出し方はヘルプ参照。
> ローマ字順
Excel組み込みでそういう機能が無いから、たぶんVBA使わないと無理。
VBA使えば一応「漢字→ローマ字変換」も可能なので、フリガナと同じく
作業列にローマ字で書きだして並べ替えるだけだが。
2007は使ってないから、もしかしたらそういう機能付いたかも知れないけど。
>>710 そんないい加減な質問の書き方で、的確な回答がもらえると思わない方がいい。
>>705 メソッド分割はVBAに限った話じゃなく、どんな言語を使っていても
必ず検討が必要になる話題で、その考え方には、言語に依らない
共通的な指針がいくつもある。
VBAに限って言うと、設計思想に関する本は殆ど出ていない。
初心者向けの基本的なもの、中級者向けのやや高度なテク
ニック・ギミックを紹介するものばかりだ。
本当に使える知識として身につけたいなら、他の言語も一度
勉強してみるといいんじゃないかな。
ちなみに俺の場合、オブジェクト指向に関する勉強が
VBAの設計にも大いに役立った。
714 :
名無しさん@そうだ選挙にいこう :2007/05/27(日) 10:06:10
【1 OSの種類 .】 WindowsXP SP2 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 IE7で表示しているホームページの「1-2-3」という文字列をコピーして張り付けると勝手に「2001/2/3」と 日付になってしまいます。何か設定の問題でしょうか?
↑ 書式の設定を文字列にすれ 以上
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 条件付き書式 ある文字列からMIDで2ケタの数値を抽出してまして、 その数値が50以上の場合セルを赤色にしたいです。 条件付き書式はどう設定すればいいでしょうか?
717 :
名無しさん@そうだ選挙にいこう :2007/05/27(日) 16:30:52
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 いいえ 【5 検索キーワード 】 excel グラフでY軸を4つにしたいんですが、これは不可能なのでしょうか?
718 :
716 :2007/05/27(日) 16:38:36
自己解決しました。 失礼しました。
719 :
名無しさん@そうだ選挙にいこう :2007/05/27(日) 20:08:57
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 日付の範囲 指定 エクセル など sumif の検索条件で、 2007/5/1 〜 2007/5/30 の 間の期間を 指定したいです。 2007/5/1以降であれば、 ">=2007/5/1" とやればいいことまでは分かりました。 5月31日までを入れるにはどうしたらいいのでしょうか? よろしくお願いします。
>>719 =SUMIF(範囲,"<=5/31",合計範囲)-SUMIF(範囲,"<=4/30",合計範囲)
2007/5/30までから2007/5/1以前を引く
5/1以前を引いたらいかんと思うんだが… それと、「5/31まで」な。
723 :
名無しさん@そうだ選挙にいこう :2007/05/27(日) 21:21:54
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 作成者 削除 ファイルの作成者・所有者情報を削除したいのですが、どうすればよいでしょうか。 ファイルのアイコンを右クリック→プロパティを表示させても[全般]タブしかなく、 削除(もしくは変更)が出来ません。 シートの保存フォルダで[表示]→[詳細情報の設定]で所有者と作成者の表示にチェックを入れると 名前の確認は出来ます。 これを何とかしたいのです。
↑Excel のファイル>プロパティ から変更できる希ガス
725 :
名無しさん@そうだ選挙にいこう :2007/05/27(日) 21:28:36
>>724 即レスありがとうございます。
それが出来ないんです〜
ファイル>プロパティだと空欄なんですが、
いざ保存フォルダで確認するとしっかり名前が入ってるんです。。。
おかしいなぁ… 漏れはExcel2003だけど Excel の[ファイル(F)]>プロパティで空欄にすると しっかり反映されるのだが…
>719 ちょっと強引だけど {=SUM((範囲<=39232)*(範囲>=39203)*(合計範囲))}
728 :
名無しさん@そうだ選挙にいこう :2007/05/27(日) 21:43:45
>>726 そうですよねぇ‥私もそうだと思っていました。
別のPC(←今家に無い)だとバージョンが2000で、もちろん変更できたので、
今問題のあるPCがバージョン2003だから変更できぬよう固定されてしまっているのか、
それともやり方が悪かったのか、わかりかねてしまいました。
本来は出来るんですね。
ありがとうございます。
会社でシートの複製などして対応したいと思います。
>>725 全く関係ない文字を適当に入れて保存してみたら?
>>725 エクスプローラー等でファイルを右クリックしてプロパティ見ていると思ふ。
対象のファイルを開いて「Alt」→「F」→「I」したら全般タブは無いよ
732 :
725=728 :2007/05/27(日) 22:03:05
>>730 無事に消えました!
ありがとうございます。
>>731 Alt→F→Iでは所有者情報がなくても、
保存先のフォルダ内のアイコンでは載っている、そういう状態でした。
なので質問した次第だったんです。
不思議ですよね‥。
733 :
名無しさん@そうだ選挙にいこう :2007/05/27(日) 22:54:39
シート1の内容をシート2にコピーする際、 シート内の列幅や関数、データはコピーできますが ページ設定の内容(余白など)がコピーできません 無理でしょうか?
Excel (Office Professional 2003) WindowsXP SP2 =A2/B2 などと計算式を C2 に入れて、結果がセルに表示されますが、 その際、小数点以下を「切捨て」で表示させるにはどうしたらよいでしょうか?
セルの書式設定→表示形式「数値」→小数点以下の桁数「0」
>>733 ちゃんとページ設定の内容もコピーされるぞ
シートをコピーしてるのではなく、全セルのコピーをしてないか?
左上にある行番号と列番号の交点部分をクリックして
全セル選択した状態でコピーし、別シートに貼り付けるのは
シート内容のコピーではなく全セルのコピーだぞ
シートのコピーはシートタブの右クリックメニューから
「移動またはコピー」でやるんだぞ
ページ設定とかは、セルではなくシートそのものに設定されてるんだから
セル内容だけコピーしたって反映されないのは当然だろ
>>738 ありがとうございます!
まさしくおっしゃるとおりでした。
左上にある行番号と列番号の交点部分をクリックして
全セル選択した状態でコピーし、別シートに貼り付ける
これでコピーしてましたorz
VLOOKUPを使って、正しい数式のはずなのに何故か答えが「0」で返ってくるのは何故? 違うシートに参照用データをコピペして、IFISERRORもつかってやってるんだけど、 そんなのも原因じゃないよな? 偉い人教えて下さい…。 他のSUMとかでも0で答えが返ってきたりする。何故だ!?
ほぼ100%の確率であなたが間違っているからです
× 正しいはず、間違ってない ○ 間違いに気付いてない
そうなんですか…。 なんで「0」が返ってくるのでしょうか? エラーは別の形で出てくるのでは?
おまいさんのExcelは1+1と1-1を間違ったら自動的に判断してエラーを返してくれるのかい?
参照列が漢字の筈なので、ゼロが返ってきたりするわけはないと思ったんですが…。 「表示されない」列も、参照列の数に入るんですかね?(VLOOKUPの最後に入力するとこ) 「D」を表示しない設定の場合でも、E列から探す場合は左から4番目の「4」ではなく「5」にするとか?
>>746 そうなんですね〜。
でもそれならそれでずれた先のセルが参照される筈なのではないのでしょうか?
何故ゼロになるんでしょう。
何故かは君がどういう間違いをしてるのかブツを見ないとわかんねーよ ブックをうpする気が無いなら、書き込みやめて一人で悩んでてくれ エスパー能力者にしか解決できない問題を延々と投げかけられても困る
>>748 そうですね、UP出来ないんで独りで悩んでみますね。
みなさん感謝です。
>>749 次からは、思いこみと独り言でスレを汚さないようにしてくれ。
セルにURLが書かれていて、HTMLの<title>から</title>までの間の文字列を取得して、 そのURLの1つ横のセルに入力するマクロを教えてください。
753 :
名無しさん@そうだ選挙にいこう :2007/05/28(月) 02:39:49
おちんちんおっき
>>752 スレ違いってことはないだろう。VBAでWeb上のHTMLを取得して
<title>の中身を取得する。れっきとしたExcelの質問だ。
まぁ、やり方分からないので回答しないけど。
>>754 ヒント:
>>3 ★VBAについて
任意のURLにあるHTMLのtitleタグの内容を取得する部分は
どう考えてもExcel関係ないので、その部分を関数として自力で作ったなら
その関数にセルのURL文字列を引数として与えて、戻り値を一つ右のセルに代入するという
Excelに関係有る部分だけは教えてもいいけどね
windows xp、excel2003でバーコードを使って入力をしてデータを自動的に引き出すデータベースを作りたいと思っています。 vlookupで手入力で数字を打ち込めばデータが呼び出されるところまでは作れました。 あと、バーコードの部分がよくわかりません。検索してみると、excel2000ではフォローしていたようですが、 2003ではヘルプを検索してもそれにあたる項目がないようです。 バーコードとexcelについて詳しくわかるサイトなど、ありませんでしょうか。
>>756 二行目でバーコードから検索するという目的を達成しているように思う
何をしたいのかわからない
>>757 使うのはエクセルのことをよく知らないおばちゃんだったりするので、
マクロと組み合わせてピッと通せば時間、種類が記録されていく・・・とこういう形をとりたいわけです。
自分でやるなら、もちろん手入力でいいわけですけども・・・。
>>758 「ピッと通せば」というのがレジにあるような読み取り機のことなら
その機械が絡んでくるので、その機械のメーカーに聞いた方が良いんじゃないかな?
760 :
633 :2007/05/28(月) 19:31:06
質問でないけれど、書かせてもらいたい。マクロ、VBAを勉強したい、関心があるという
事務屋さんや学校の先生、その他数字をあたる人は
>>681 さんがアップしてくれている
単価表と売上(個数・)額表のブックのをとりあえず、ダウンロードさせてもらっといて
損はしないと(土日に見ていない人も居ると思うので)。マクロウィルスの心配無用です。
先ほど見たら、ダウンロード数20件だった。
ふぁいるないよ?
762 :
名無しさん@そうだ選挙にいこう :2007/05/28(月) 20:00:42
Qさまに大木c出てるぞ
ごめん誤爆
>>760 丸投げで人に作らせおいて、マクロウイルスが云々と何度も書くのは
>>681 氏に失礼だと思うが。
うぜーどっちも消えろ
>>758 んなものをExcelで実現させようとしてるのは無理があるんじゃないか
767 :
633 :2007/05/28(月) 21:11:42
>>764 681さんに失礼があったら、お詫びする。その心配はもとよりしている。
が、ダウンロードする側からみると安全性を強調するのは必要で、セット。
お世話になったものが言うのが一番、伝わると思ってね。
そろそろ「自演乙」って言ってもいい頃か?
769 :
681 :2007/05/28(月) 21:29:16
>>767 個人的にはかなりシンプルで手のかかってないマクロだし、VBAを多少かじった人が見れば、
全然大したマクロでもないわけで。あんまり宣伝してもらうのも、逆に少し恥ずかしくもある。
けど、ずいぶん喜んでもらえたようで良かった。このマクロだけじゃできることなんてかなり
限られるから、自分で作り込めるくらいに勉強するといいかもね。
>>768 お好きにどうぞ。
DLできないのに何必死になってるんだ?
771 :
681 :2007/05/28(月) 21:52:11
何が悲しくて誰彼かまわず噛みついてるのか知らんが、こんな場末で人を貶して 憂さ晴らししているヒマがあったら、もう少し心にゆとりを持って生きられる工夫でも したらどうかね。 まぁ、そろそろ周囲から煙たがられてるのかな。以降は名無しに徹するよ。
はじめまして。 Excel2007つかって初めてレポート書いています。 質問ですが、セルに12.20というように小数点以下の最後の桁にゼロを入力しても表示されません。 表示されるようにするにはどうしたらいいですか? まったく初心者でごめんなさい。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 「検索 マクロ」「active」「Find」 シートの中で検索をかけて、「引っかかったセルの、行全体を指定」 というのは、どういう記述をすればよいのでしょうか? たとえば A B C D E 1 No. 氏名 生年月日 住所 電話番号 2 1 西村 博之 1976/04/25 東京都○○ ××× 3 2 坂本 金八 1954/03/16 福岡県○○ ××× というシートが縦に続いている時 Cells.Find(What:="氏名", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _ xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _ , MatchByte:=False, SearchFormat:=False).Activate と検索すると、B1が指定されますが、この時にColumns("B:B").Selectになるようにしたいのです。 (マクロ文は「マクロの記録」をそのまま引用していますので、余りよく意味はわかっていません・・・) どなたか、よろしくお願いいたします。
>>772 セルの書式設定で数値にして、小数点以下の桁数を2にする
>>772 画面の上の方にハサミのマークとか「B」とか「I」とか並んでるでしょー。
その中の
← .0 .00
.00 →.0
っていうマークの、矢印が左向いてる方を押せばいいのだよ。
画面上にそんなマークが無いって言うなら、
表示→ツールバー→書式設定で出てくる。
解決しました! ありがとうございました。 学生寮住まいなもので、ネットにPC繋がれてなく、テンプレをコピペすることができませんでした。 大変失礼しました。
>>774 他の人は落とせるのか?
ファイルが存在しません。って出てDLできないんだが。
>>773 Dim str As String
733の選択するコード
str = ActiveCell.Address
str = Mid(str, 2, 1)
MsgBox str
Columns(str).Select
でいけた。コードきちゃないから直してね。
>>779 ありがとうございます!できました!
いろいろと応用ききそうなのでいじってみます!
781 :
名無しさん@そうだ選挙にいこう :2007/05/28(月) 22:54:32
複合参照で A$9と $A9の用に $の位置の意味が よくわかりません。 どなたか教えて下さい
$は楔と考えると。 $A$9 はAと9に楔を打ち込まれて動けない。 $A9 はAに楔を打ち込まれて数字は動く A$9 は以下同文。
784 :
名無しさん@そうだ選挙にいこう :2007/05/28(月) 23:07:26
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 苦手 【4 VBAでの回答の可否】 否 日付が入ってるセルから日付をテキストにして抜き出したいのですが、どういう書き方をすればいいのでしょうか。 2007/5/28から20070528 のようなセルをつくってテキストファイルで利用したいのです。 書式をいじってYYMMDDにして値のみコピーしたり、RIGHT関数やMID関数を使ってもできませんでした・・・
785 :
名無しさん@そうだ選挙にいこう :2007/05/28(月) 23:09:58
783さん ありがとうございました
>>784 A1に日付が入っているとすると
=TEXT(A1,"yyyymmdd")
787 :
名無しさん@そうだ選挙にいこう :2007/05/28(月) 23:25:53
>>786 ありがとうございました
いまいちTEXT関数の仕様が腑に落ちませんが勉強してみます
789 :
名無しさん@そうだ選挙にいこう :2007/05/29(火) 00:07:37
今度Excelのスペシャリストを受けようと思ってますが範囲がイマイチ解りません 関数の問題も出るんですか?
>>789 MOSの公式サイト見てみたほうがいいですよ
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 少し 【4 VBAでの回答の可否】 可 同列内の数値に一括して、同じ数字を足す事はできますか? 例:A1〜A3まで1,2,3となっているのを全て+2して3,4,5に 以上、お願いします。
>>791 B1〜B3に「2」を入れる。(AA1〜AA3でもOK つまり何処でもイイ)
B1〜B3を選択してコピーする。
A1〜A3を選択し編集⇒形式を選択して貼り付け(貼り付け:全て/演算:加算にチェック)⇒OK
B1〜B3を削除
テストシートで確認してちょ。
>>792 3年以上使ってて形式を選択して貼り付けって項目すら今まで気づきませんでした。
基礎から勉強し直します。
ありがとうございました。
コピー元は普通ひとつだろ、常識的に考えて、
だから?
796 :
名無しさん@そうだ選挙にいこう :2007/05/29(火) 15:20:17
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 COUNTIF、VLOOKUP、IF シート1 シート2 A B C A B C D E 1 井上 木村 東京 1 東京 大阪 京都 福岡 2 加藤 伊東 大阪 2 伊東 0 3 2 13 3 加藤 井上 福岡 3 井上 1 0 0 0 4 木村 鈴木 東京 4 沖田 0 0 5 0 5 加藤 井上 大阪 5 加藤 0 20 14 27 6 山田 加藤 京都 6 木村 9 13 0 0 シート1に↑のように入力されたデータ(A列は本人、B列はその穴埋め)が 1000行程度あります。シート2には予め1行目とA列が入力済みで、 それぞれ誰が何処へ何回行ったかを表示させたいのですが、どのような 関数で式を書けば良いのでしょうか?よろしくお願いします。
>796 countifが適当だと思う
>>778 「ファイルが存在しません」ってなるね。
このあいだはたしかにダウンロードできたから、時間がたったら消えるんじゃないの?
799 :
797 :2007/05/29(火) 19:13:30
>796 ごめん駄目だ こうしてくれ sheet2のB2に=SUM(IF(Sheet1!$A$1:$A$6=Sheet2!$A2,IF(Sheet1!$C$1:$C$6=Sheet2!B$1,1,0))) と入力してctrlとshift押しながらenter押してみて あとはドラッグアンドドロップ
>>791 の例で、A2の「2」をコピーして加算貼り付けすると
A2は当然「4」だけど、A3はその「4」が加算されるのな。
だから何?と聞かれても困るが
801 :
633 :2007/05/29(火) 19:45:00
>>778 折れが悪かったようだ。
>>681 のアドレスの分は削除されている。681さんが再アップ
してくれている
>>689 からはいればDLできるよ。
前スレから見ているけれど、VBAに関するいくつかの質問の実回答例がそこにあったこと、
個々端々のでなく、組み立てを見ることができるというのも強力な推薦理由です。
折れは生涯学習版の方の長年の住民だよw 今回でフェードアウトします。
サンクス
>>800 何処にA2をコピーすると書いてあるかな?
コピーする元はB列だから全部2だけど?
A列には加算して貼り付けるだけだから4を加算なんてしない。
A2をコピー元にすればキミの言うとおりになるのも解ってる。
B1に2を入れてからコピーしてA1〜A3を選択して加算すればコピー元が1ヶ所で良いのは解ってる。
もう一度レスを冷静に読んでは貰えないか??
【1 OSの種類 .】 Win xp pro sp2 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否 】 否 【5 検索キーワード 】if 重複・2重 C2へ A2と同じ値が他のA列にあって、その行のE列が18であれば その行のF列の値をコピー と言うようにIF関数が2重になるような式は作れますか? ググったのですが見つかりはするものの、応用の仕方がわかりませんでした 次に Eの列に18があれば、その行を削除 と言うような関数はありますか? よろしくお願いします。
804 :
名無しさん@そうだ選挙にいこう :2007/05/29(火) 22:06:06
関数は値を返す物であって、操作を行うものではないからな
806 :
名無しさん@そうだ選挙にいこう :2007/05/29(火) 22:41:01
>>792 こんな使い方あったのね。
知らんかった。ありがトン
807 :
803 :2007/05/29(火) 22:58:23
>>804 >>805 レスありがとうございます、
削除は手動でがんばります
改めまして
C2に
A2と同じ値が他のA列にあって、その行のE列が18であれば
その行のF列の値を返す
という式を教えてください、
すみません。ちょっと質問させて下さい。 ActiveCell.FormulaR1C1 = "=sheet2!R[変数]C[3]" R1C1方式で、変数を入れるとエラーになります。 ならない方法教えてください。
>>808 ActiveCell.FormulaR1C1 = "=sheet2!R[" & 変数 & "]C[3]"
811 :
808 :2007/05/29(火) 23:26:58
すみません、もう1回質問。 ActiveCell.FormulaR1C1 = "=sheet2!R[" & 変数 & "-" & 代数 & "]C[3]" この場合はどうすれば・・・・
>>811 意味ワカンネ
変数=3
代数=1
でR[2]C[3]にしたいって感じなら
ActiveCell.FormulaR1C1 = "=sheet2!R[" & 変数 - 代数 & "]C[3]"
813 :
811 :2007/05/29(火) 23:35:48
>807 出来なくはない。ただし作業列を用意した方がいい なぜならその条件と一致するセルが一つとは限らないからだ 例えばG3に=(A3=$A$2)*(E3=18)*F3とすれば抽出出来るから、これでガマンした方がいいだろう 一応これの応用でC2に{=sum((A3:A10=$A$2)*(E3:E10=18)*F3)}と入れれば 条件に合致するF列の値の"合計"を求める事はできるが、同一条件が複数あったら"合計"されちゃう。
815 :
814 :2007/05/29(火) 23:52:45
× {=sum((A3:A10=$A$2)*(E3:E10=18)*F3)} ○ {=sum((A3:A10=$A$2)*(E3:E10=18)*F3:F10)}
816 :
803 :2007/05/30(水) 00:15:21
817 :
803 :2007/05/30(水) 00:17:19
すみません キーは「54321」でした よろしくお願いします
818 :
名無しさん@そうだ選挙にいこう :2007/05/30(水) 08:28:57
>>817 =803
>807の説明とアップデータの内容が合ってない
何がしたいか想像するの面倒だから、
シートの項目名で説明やり直して
{ }で囲ってある式は配列数式って意味だよ 実際には{ }以外をコピペして、Ctrl+Shift+Enterで確定する するとExcelの数式バーでも{ }が付いた表示になる ネストと並んで数式の基本中の基本
【1 OSの種類 .】 Win xp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 ただいま勉強中 VBAの記述について質問です。 変数num を用意して、そこにrange("A1").mergearea でA1を含む結合セルの文字列を読み込みました。 これを if 式で if num<>"" のように表記すると「型が一致しません」とのエラーが出ます。 結合セルの文字列をC1 =A1 でコピーして同様の表記をしたところ、エラーは出ませんでした。 どうも結合セルの値を用いたことが原因らしいということはわかりましたが、そういうものなのでしょうか。 少し不便な気がするので、回避方法などありましたらご教授くださいませんか?
>>820 結合セルは複数のセルの塊(rangeオブジェクト)だから型がちがう。
だからそのなかの先頭のセルの「値」を代入すればいいんじゃね?
range("A1").mergearea.cells(1).value
>>820 エリアを返すので MergeArea(1) とするとか、そもそもMergeAreaをつけないとか
823 :
名無しさん@そうだ選挙にいこう :2007/05/30(水) 13:58:31
Office2007を使ってるんですが オートフォーマットが何処にあるか解りません 誰か教えて下さい
>>823 [ホーム]タブの[スタイル]-[テーブルとして書式設定]がそれ
>819の独り言が気持ち悪い
【1 OSの種類 .】 Win xp 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 ちょっと 標準モジュールでは、正常に動くのですが、Sheet2にコマンドボタンをつけて実行するとエラーになります。 Private Sub CommandButton1_Click() 変数 = 3 For ネックスト = 5 To 500 If Not IsError(Sheets("Sheet1").Cells(ネックスト, 12)) Then If Sheets("Sheet1").Cells(ネックスト, 12) = "中" Then Sheets("Sheet2").Cells(変数, 3) = Sheets("Sheet1").Cells(ネックスト, 1) Sheets("Sheet2").Cells(変数, 4) = Sheets("Sheet1").Cells(ネックスト, 3) 変数 = 変数 + 1 Sheets("Sheet2").Cells(変数, 3) = Sheets("Sheet1").Cells(ネックスト, 9) Sheets("Sheet1").Select Cells(ネックスト, 9).Select ' ←ここでエラーになります。 Selection.Copy Sheets("Sheet2").Select Cells(変数, 4).Select ActiveSheet.Paste 変数 = 変数 + 1 End If End If Next 何故エラーになるか教えてください。
827 :
796 :2007/05/30(水) 16:03:18
>>826 Private Sub CommandButton1_Click()
変数 = 3
For ネッッックスト = 5 To 500
If Not IsError(Sheets("Sheet1").Cells(ネッッックスト, 12)) Then
If Sheets("Sheet1").Cells(ネッッックスト, 12) = "中" Then
Sheets("Sheet2").Cells(変数, 3) = Sheets("Sheet1").Cells(ネッッックスト, 1)
Sheets("Sheet2").Cells(変数, 4) = Sheets("Sheet1").Cells(ネッッックスト, 3)
変数 = 変数 + 1
Sheets("Sheet2").Cells(変数, 3) = Sheets("Sheet1").Cells(ネッッックスト, 9)
Sheets("Sheet1").Cells(ネッッックスト, 9).Copy Sheets("Sheet2").Cells(変数, 4)
変数 = 変数 + 1
End If
End If
Next
みたいにselectを使わないで直接コピーしてみるとどうでしょ?
829 :
796 :2007/05/30(水) 16:14:44
B2=SUM((Sheet1!$A$1:$A$1000=Sheet2!$A2)*(Sheet1!$C$1:$C$1000=Sheet2!B$1)) Ctrl+Shift+Enterでもいいんですね。なるほど。
>>828 レスさんくす。
早速確認したが、エラーになります。
Sheets("Sheet1").Cells(ネッッックスト, 9).Copy Sheets("Sheet2").Cells(変数, 4)
↑この間は空白だけでいいんですよね?
>>824 さん
ありがとうございました。
ついでなんですが2003とは内容が大分違うんですか?
>830 copyじゃなくて"="で良くね?
833 :
826 :2007/05/30(水) 17:27:03
>>832 =だと、セルの値がコピーされてしまう。
セルの数式がほしいのです。
>833 確認してないけど cells(a,b)に何も付けないとcells(a,b).valueと同じ意味になるんじゃないの だから省略せずにcells(a,b).formulaとしてみたらどう?
835 :
826 :2007/05/30(水) 17:49:25
>>834 ありがとう。
数式コピーできました。
しかし、セルの背景色もコピーしたいんですが・・・・・
わがままですいません。
でもこれ勉強になりました。
>>826 10〜15行目を↓に書替え
Sheets("Sheet1").Cells(ネックスト, 9).Copy
Sheets("Sheet2").Cells(変数, 4).Select
Paste
837 :
826 :2007/05/30(水) 18:10:12
>>836 ありがとうございます。
完璧にできました。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 僅かに 【4 VBAでの回答の可否 】 可能なら否 【5 検索キーワード 】 入力規則 入力規則の日付を設定したのですが こうすると数式を受け付けてくれません 日付に関する数式や空白を受け付けるように ある程度自由度を設けたい場合はどのように入力規則を設定したら良いでしょうか
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否【5 検索キーワード 】 SUMIF COUNTIF IF AND OR 基本的な事かもしれませんが、SUMIFの条件を複数設定することは可能なんでしょうか? 例えばA列に日付、B列に場所、C列に行動がズラーっと書いてあるとして、 「今日東京に行った人」の数=(A列が5/30で、かつB列に「東京」と入っている人数)を表示するためにはどういう式になるのでしょう 集計用にD列に全て「1」を入れたりしてみましたが、 SUMIFやCOUNTIFの式の中にANDやORを入れるやり方がわからず頓挫しました どなたかわかる方おられますか?
841 :
838 :2007/05/30(水) 20:37:20
>839 今の設定は日付→次の値以上→1 とにかく日付を入力させたいので 自然数か空白か数式が入れば良いのですが ユーザー設定で可能なのかも判らないし使い方も判ってないのです >840 複数の条件で合計したい場合は配列数式ですよ
>>838 データの入力規則→エラーメッセージ→スタイル
を『注意』か『情報』にしておく
>825の独り言が気持ち悪いw ↓
>>819 の独りよがりのレスは、確かに少し気持ち悪い
846 :
名無しさん@そうだ選挙にいこう :2007/05/30(水) 23:52:25
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Excel 選別 たとえば、ある列のデータのうち、0ではない値だけを取り出して、 順番に並べることはできるのでしょうか?
>>846 フィルターで0以外を選択した後に並び変えたら?
848 :
名無しさん@そうだ選挙にいこう :2007/05/31(木) 00:21:33
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】excel ファイル 挿入 会社で使用しているフォームに画像ファイルを挿入したいのですが 「挿入」→「図」と選択しても、その後の選択肢が選択できない状態になっているファイルがあります。 別のフォームではちゃんと挿入できるのですが 同じような操作で挿入するには、設定のどの部分を変更したらよいのでしょうか?
849 :
846 :2007/05/31(木) 00:22:01
フィルタをかけ出てきたセルたちを、 自動に新たに行番号が飛び飛びにならないようにできないのでしょうか?
>>849 もう少し日本語を何とかしてくれ。
何が言いたいのかさっぱりワカラン
851 :
名無しさん@そうだ選挙にいこう :2007/05/31(木) 00:32:41
エクセルについての質問なのですが。 数値を入力して、自動的に秒数表示にするにはどうすれば良いのでしょうか? たとえば98.4と入力すると1:38:4と表示させたいのですが。 PC初心者スレで質問したところ、関数を作らなければ駄目なのではと教えて頂いたのですが。
852 :
846 :2007/05/31(木) 00:34:26
>850 すみません。。。 たとえば、ある値(たとえばA3)から4つ加えたいとすると、 普通は=SUM(A3:INDIRECT("A"&ROW(A3)+4-1)) でできますが、 フィルターをかけた表でやると、行数が連続していないので、変な計算になってしまいます。 それを修正したいのですが、なにか方法はないでしょうか? わざわざINDIRECTを使うのは、4という数字を自由に変えたいからです。
>>852 むりだとおもうよ
代わりに何か識別符号を付けてそちらで参照するとか
854 :
846 :2007/05/31(木) 00:46:09
わかりました。ありがとうございます。
855 :
名無しさん@そうだ選挙にいこう :2007/05/31(木) 00:48:39
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 付加
【5 検索キーワード 】 第2軸
http://up.spawn.jp/file/up23451.gif このグラフの「高齢化率」「70歳以上人口割合」の
点の位置がおかしいんですが何か解決策はありますか?
856 :
853 :2007/05/31(木) 00:56:50
すこし変なこと書いた
>842-843 ありがとうございます 規定外の入力があるとデータベースファイルに書き込む際エラーになるので警告は嫌なのです やろうとしている事を入力規則のユーザー定義で規定する方法が思いつかないので とりあえずセルに数式を入れないで済むように自動実行マクロで回避しました 既に同じシートに自動実行マクロを一個設定してしまっているので ごちゃごちゃするから嫌だったんですが >851 A1に98.4と入力されているとしてB1に=time(0,0,A1)と入れてみて
858 :
851 :2007/05/31(木) 01:23:20
>>857 ありがとうございます。
早速試したところ「12:01AM」となってしまいました。
やり方が悪かったのでしょうか。。。
859 :
857 :2007/05/31(木) 01:31:13
>851 さっきのは本当に秒として変換する場合で書式設定すれば0:1:38とまでは表示する事はできる でもエクセルではコンマ何秒とかの書式設定はないのでどうしても表示させたい場合は A1の値に対して↓こういう式を使って文字列にしちゃえば一応表示だけは出来る…長い =QUOTIENT(A1,60)&":"&INT(MOD(A1,60))&":"&INT(MOD(A1,1)*100)
860 :
名無しさん@そうだ選挙にいこう :2007/05/31(木) 01:34:29
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 自己流1ヶ月です>< 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 アクティブセル 折り返 範囲 移動 ユーザーフォームにコマンドボタンを作ってマウスクリックでアクティブセルを動かしたいのですが セルの動ける範囲をB2からH10に指定し、行や列の終わりに行くと次の行・列に折り返したいのですが やり方がわかりません。 また、このコマンドボタンの.Acceleratorに矢印ボタンを登録することは出来ないのでしょうか よろしくおねがいします。 Private Sub CommandButton1_Click() '↑ ActiveCell(-1, 1).Select End Sub Private Sub CommandButton2_Click() '← ActiveCell(1, 0).Select End Sub Private Sub CommandButton3_Click() '↓ ActiveCell(3, 1).Select End Sub Private Sub CommandButton4_Click() '→ ActiveCell(1, 2).Select End Sub
861 :
846 :2007/05/31(木) 01:40:17
>856 Aに識別子(ゼロじゃない値に対して、1から順番に番号を当てる。)をつけて、 Bに行番号を返すことで、解決しました。 Aを参照して、vlookupでBを探して、INDIRECTでセル番号にして。。。 ありがとうございます。
862 :
851 :2007/05/31(木) 01:56:51
>>859 何度もありがとうございます。
試してみたのですが「#NAME?」となってしまいました。
せっかく教えて頂いているのに、上手く使えなくて申し訳ありません。
>>860 テキストの代わりにイメージを貼り付けてボタン色を背景色と同じ色にすれば?
アクティブセルを制御する方法はいろいろある。
まずIF文を使って、コマンドボタンを押したときのアクティブセルがH列の時、
1行下のB列を選択する方法。
あと、SelectionChangeイベントであらかじめ設定した範囲外が選択されたら
アクティブセルの1行下のB列を選択する方法。
>862 ごめん気がつかなかった >859の式には特殊な関数が入っていた ツールメニュー-アドイン-分析ツールにチェック、で使えると思う
865 :
864 :2007/05/31(木) 03:19:13
度々ごめん 変な関数使わないで =INT(A1/60)&":"&INT(MOD(A1,60))&":"&INT(MOD(A1,1)*100) でいいんだよね 間抜けだ、俺
866 :
851 :2007/05/31(木) 03:34:34
>>865 わっ、すごい!!
教えて頂いた通りにすれば、見事できました!
何度も何度もフォロー頂き、ホントありがとうございました!!
867 :
名無しさん@そうだ選挙にいこう :2007/05/31(木) 07:21:59
>>840 複数の条件での集計方法の1例は、
「D1=A1&B1」の様に条件を「&」で連結して1つにしてしまう
これで簡単にSUMIFやCOUNTIFの設定が出来るよ
>>841 中途半端な回答は相手を悩ますだけだ。
断定的な書き方は、するんじゃない。
868 :
名無しさん@そうだ選挙にいこう :2007/05/31(木) 07:27:06
Shift+Spaceでの行選択をVBAで実現させようと思ってます。 (IME ONとカブるのがうざいので) 普通に、アクティブセルのある行を選択するように組むと、 行内選択範囲のA列がアクティブセルとなってしまいます。。 選択範囲内でアクティブなセルを変えるには、どうしたらいいですか?
>>851 =A1/86400
書式を mm:ss.0
.4 になるが、秒コンマを :4 と表現しない方が良い。
>>859 コンマ何秒とかの書式設定はないとか、嘘を教えないように。
>868 あまりに程度の低い返しに、つい笑ってしまった 君はすごいヤシだな
excel2003を使っています。 XML形式に変換したいのですが ヘルプを見るとデータメニュー→XMLを選択と書いてあるのですが、 XMLの項目がありません。 わからなく近くの本屋に行って確認すると本の画像にはXMLの項目が確認できました。 2003にもバージョンで内容が違う等があるのでしょうか?
携帯から失礼します。 以下の手順をExcel内に作るボタンを押しVBA等で 全て処理出来るかどうか教えてください Excelで住所録を作成、その時々の出力対象にフラグ立てをして保存。 Wordのラベル印刷用(封筒印刷)の定型ファイルを呼び出しクエリ抽出。 印刷設定を手差しトレイに変更の上印刷。<ここまで> 【1 OSの種類】 Windows2000 【2 Excelのバージョン】 Excel2000 【3 VBAが使えるか】 使えません。これから覚えます。 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 差し込み 印刷 名簿 VBA Excel Word
>>872 XML関連の機能がフルに使えるのはOffice 2003Professional Edition
または単体販売のExcel2003のみ。
他にもEditionによって機能が異なる例はいくつかある。
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 目下勉強中 ”元”というシートのコマンドボタンを押すと、 練習 というシートを選択して、そのシートのH2がtrue なら false 、false なら true にするマクロを記述したつもりです。 worksheets("練習").select If Range("h2").Value = True Then Range("h2").Value = False Else Range("h2").Value = True End If End Sub true と false の切り替えはうまく行きましたが、”元”のH2の値が書き換わってしまいます。 一体何を間違えているのでしょうか??? ”練習”シートは選択されるのですが・・・。
With Sheets("練習") .Select If .Range("h2") Then .Range("h2") = False Else .Range("h2") = True End If End With
>>873 > 印刷設定を手差しトレイに変更の上印刷。
これはプリンタドライバのお仕事なのでExcel関係なす。
878 :
名無しさん@そうだ選挙にいこう :2007/05/31(木) 20:20:40
エクセルで、対数正規分布の乱数の発生は可能でしょうか。
はい
880 :
名無しさん@そうだ選挙にいこう :2007/05/31(木) 20:39:14
あ〜っ、書き直します。 平均値 Ave,標準偏差 sd の乱数を得るとき、 =NORMINV(Rand(),Ave,sd) で正規分布の乱数を得ることが出来ますが、 対数正規分布の乱数は、 =LOGINV(Rand(),Ave,sd) でよろしいでしょうか? ただし、Ave, sd 値は、正規分布での値です。 よろしくお教えお願いします。
一度後出しする奴は、その後もなんやかんやと後出し続ける可能性があり 答えても答えても終わらないなんてこともあるので、後出しする奴は放置の方向で
質問です。 【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 使えない =(1/275)+(1/550)と計算したときに、答えが3/550になりますが、 この答えを1/183.3 と分子を1に統一したいのですが、やり方わかる方お願いします。
>>882 計算式がA1に書いてあり、「分子を1に統一した結果」をB1に表示する場合、B1に
="1/"&1/A1
と書く。
分母の値を適当に四捨五入したい場合は、もうちょっと工夫してみてもよし。
つーかこれ、Excelじゃなくて算数の質問だな。
できました。分母の四捨五入のしかたもお願いします><
885 :
848 :2007/05/31(木) 21:40:28
848の者ですが、引き続きご回答をお待ちしてます。 宜しくお願いします。
>>885 シートが保護されているのでは?
ツール→保護→シート保護の解除→パスワード入力
>>884 イルカさんに「ROUND」って聞くと分かる
>>887 ="1/"&ROUND(1/(A1),1)
できた!ありがとー><
どうして A1 を( )でくくるん?
890 :
848 :2007/05/31(木) 23:31:23
>>886 回答ありがとうございます。
パスがわからないので諦めざるを得ないようです。
お手数おかけしました。
891 :
873 :2007/05/31(木) 23:59:10
877さん レスありがとうございます。 > これはプリンタドライバのお仕事なのでExcel関係なす。 ではこの直前までは辿りつけるのでしょうか
>>891 VBAで出来るかと問われれば「出来る」だけど
>>2 ・7に該当する部分なので、やりたければ自分で調べてね
ここで聞いたり丸投げしたりは無しの方向で
893 :
875 :2007/06/01(金) 15:08:37
>>876 うまくできました。ありがとうございました!
基本的に別のシートを指定するのは面倒なものなんですね・・・。
894 :
名無しさん@そうだ選挙にいこう :2007/06/01(金) 15:38:19
よろしくおねがいします。 【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 使えない -100から100の値が入ったセル範囲があり、コレの ・絶対値の最大 ・絶対値の最小 ・絶対値の平均 ・絶対値の合計 を求めたいのですが、あらかじめabsを使って 別セル範囲を準備せずに済む方法が有れば教えてください。 平均と合計はsumifとを使えば出せるとおもうのですが、 最大、最小をどう処理すれば良いか思いつきません。 では、よろしくおねがいします。
範囲がA1:A10として 配列数式を使う場合 {=MAX(ABS(A1:A10))} {=MIN(ABS(A1:A10))} 配列数式を使わない無い場合 =MAX(-MIN(A1:A10),MAX(A1:A10)) =SUMPRODUCT(MIN(A1:A10*(2*(A1:A10>0)-1)))
896 :
名無しさん@そうだ選挙にいこう :2007/06/01(金) 17:04:13
配列数式ってものを初めて知りました。 不勉強で申し訳ないです。 ありがとうございました。
897 :
名無しさん@そうだ選挙にいこう :2007/06/01(金) 17:14:56
【1 OSの種類 .】 WindowsXP SP2 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 excel バー セルの内容 表示 セルの内容を数式バーに表示させる機能をオフにすることは可能なのでしょうか? データの入ったセルをマウスでクリックすると、内容が数式バーに表示されますが、 たとえばセル内で改行を使用している場合、数式バーの表示にも改行が反映され、 そのようなセルを選択すると、結果的に数式バーから表示がはみ出て シートの一部が隠れてしまいます。 20行くらい改行のある文章をひとつのセルに入力してから選択したところ、 数式バーの表示がおもいっきりはみでるので非常に邪魔です。 消すか、改行を反映させない等、本文の邪魔にならないようにすることは可能でしょうか?
898 :
名無しさん@そうだ選挙にいこう :2007/06/01(金) 17:49:37
【1 OSの種類 .】 WindowsXP SP2 【2 Excelのバージョン 】 Excel2002 SP3 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 小数点 0 非表示 単純な質問ですがよろしくお願いいたします。 「0.5」などの小数点を「.5」と表示させる方法はあるでしょうか? 理由は、現在在庫の一覧表を作成しているのですが 単価が1円以下の数値を含むものがあり(2円50銭など) この「50銭」を見やすくするために小さく表示させたいと思い、 例えば2円50銭なら「2」「.5」とセルを分けて入力したいと考えています。 「文字列」として入力したくない理由は、このセルの右側に合計欄を作るため、 「.5」は「0.5」という意味を持たせたいのです。 数式は「=数量×(「2」+「.5」)」とするつもりなのですが、 可能でしょうか?
>>897 シートの保護と併用すれば可能(※)だけど、あまりおすすめできない。
※対象範囲のセル全部を選択して、書式>セル>保護
「ロック」のチェックを外し、「表示しない」にチェックを入れる
ツール>保護>シートの保護で求める状態になる
質問の趣旨からははずれるけど、2007なら数式バーからのはみ出しは起きない。
900 :
名無しさん@そうだ選挙にいこう :2007/06/01(金) 18:42:16
>898 書式設定を「.0」or「.?」に
>897 セルの内容が反映されなくて良いなら 数式バーなんか消せば良いのに。。
902 :
名無しさん@そうだ選挙にいこう :2007/06/01(金) 21:08:26
>>898 【別案】
うちの会社でやってる方法だけど参考にして!
表示形式を「 0"円".00"銭" 」にすると
100が → 100円.00銭 と表示されます。
小数点が邪魔なようだけど数字ずらっと並ぶとかえって見やすいです
903 :
名無しさん@そうだ選挙にいこう :2007/06/01(金) 21:48:19
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 使えない 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 複数シート 統合 住所録 質問します。 複数のシートにある住所録を一つのシートに自動で統合 するようにしたいのです。 さらに統合する際に並び替えを行いたい。たとえば年齢順 そして現在から3ヶ月後までに誕生日になる人のセルの色を 変えたいんですけど。自動で。
>>903 コピー&ペーストして並べ替え
条件付き書式で処理する
905 :
名無しさん@そうだ選挙にいこう :2007/06/01(金) 21:53:46
>>904 いや・・・データーの入力は複数シートの方で
やりたいんだわ
SUMIF関数で 検索の条件を 入力済みのセルに指定するにはどうすればいいのでしょうか? エクセル2002です
908 :
名無しさん@そうだ選挙にいこう :2007/06/01(金) 22:16:54
>907 俺の解釈だと 例えばA列に入力がある行だけからB列の合計を出したいって事かな =SUM(B:B)-SUMIF(A:A,"",B:B) あるいは一つの式で済ませたいなら配列数式を覚えておくと色々応用が利くよ
910 :
名無しさん@そうだ選挙にいこう :2007/06/02(土) 00:03:57
>>907 普通にSUMで良いだろ。
入力済みは足されるけど、入力されていなければ
足されない。
>>907 =SUMIF(A:A,C1,B:B) って事?
912 :
898 :2007/06/02(土) 09:43:57
>>900 出来ました!ありがとうございます^^
>>902 試してみました!0円以下の単価が多いグループはこちらでやってみます。
ありがとうございました^^
913 :
807 :2007/06/02(土) 10:27:21
914 :
907 :2007/06/02(土) 10:35:01
915 :
名無しさん@そうだ選挙にいこう :2007/06/02(土) 19:30:43
tesu
916 :
名無しさん@そうだ選挙にいこう :2007/06/02(土) 20:57:01
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 Excel2003からExcel2007に乗り換えました。2003で円グラフを作ったときに モノクロ印刷でも大丈夫なように色でグラフを分けるのではなく塗りのパターン (波線や煉瓦模様など)で分けることが出来ましたが2007では出来ないのでしょうか?
>>916 同じでしょ。
データ要素ごとに選択すれば、いくらでも塗り分けできますが?
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 「ワークシート関数」かな? Excelでテストケース表作りたいです。 sum((rounddown(a1*b1/10000,0)),(rounddown(a2*b2/10000,0)))<>rounddown(sum(a1*b1/10000,a2*b2/10000),0) って感じになるようなa1,b1,a2,b2を求めたい。 どんな式で求められるだろ? 教えて、エロイ人!
また算数の問題か
それExcelの質問じゃないから よそでやって
EXCEL2003を使用しています。 行列番号が通常縦に123…横にABC…となるところが、 縦横どちらも123…となってしまいました。 元に戻したいのですが、どうしたらいいでしょうか?
>>921 ツール→オプション→全般→R1C1参照形式を使用する のチェックをはずす
>>922 これってたまに聞くが実は自分で設定いじっているせいなの?
自分ではこんなこと一度もないけど。
>>923 俺もない。VBA組むとき、めんどいから「R1C1表示」みたいな
単発マクロを入れてるけど…。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】わかりません 【4 VBAでの回答の可否】 無理です、すいません 【5 検索キーワード 】 データ呼び出し 同じブック内のシート1からシート2への呼び出し(?)なのですが、シート1に A B C 商品番号 商品 個数 1 10-1 A 4個 2 10-2 B 1個 3 10-3 C 3個 となっている状態で、シート2に10-1と入力した時に「10-1 A 4個」と出てくるようにしたいのですが、 どのようにすればよろしいのでしょうか、よろしければご指南願えませんでしょうか。
>925 混乱してるのは判るけど質問するときは5W1Hをきちんと書いた方がいいよ ・10-1と入力したセルに「10-1 A 4個」と自動で上書きさせたいならマクロでないと無理 ・例えばシート2のA列に10-1と入力した時にB列に「10-1 A 4個」と表示させるならVLOOKUPで出来る 方法は以下の通り、どれがどういう意味を持ってるのかはヘルプを見ると詳しい解説が載ってるよ 1, シート1の検索させたい範囲にメニューの"挿入(I)"から"名前"−"定義"で名前を付ける (例えばA1:C3に"範囲"という名前を付けたとする) 2. シート2のA1に商品番号を入れB2に次の式を入れる =A1&" "&VLOOKUP(A1,範囲,2,FALSE)&" "&VLOOKUP(A1,範囲,3,FALSE) 3.B2以下にもB1の数式をコピー
>>923 他人が作ったexcelの表なんかを開くと、列も数字になっていたりしているという事があるな
原因わからんけど。
928 :
名無しさん@そうだ選挙にいこう :2007/06/03(日) 13:04:46
ひとつ教えて下さい。 三角印を押すとずらーっと選択肢が出てくるやつあるじゃないですか? 何かの申し込みとかで住所→東京都とか選ぶやつ、あれをエクセルで 作るにはどうやったらいいのですか? 友達にとりあえず「入力規制」から、と言われましたがやり方がよくわかりません。 希望としては三角印押したら最低3つか4つぐらいの選択肢が出てくるようにしたいです。
コンボボックス、もしくはリストボックスで検索
>>928 [データ]→[入力規則]→[入力値の種類]でリストを選択
[元の値]に選択肢のセルを指示してやるとできますよ
5W1H というと、こうか? 昨日の昼頃でしょうか、自宅で、私が、データを カタカタとキーボードから打ち込んでいたのですが、 なんとか手を抜く方法がないかと考えまして、 … 略 … 「10-1 A 4個」と出てくるようにするには どうすればよろしいのでしょうか?
>>931 >>926 は聞きかじりの言葉を使いたかっただけだろう。
質問スレで必要なのは、せいぜいWhat、How程度。
Why、Who、Where、Whenが必要なケースは希だな
933 :
名無しさん@そうだ選挙にいこう :2007/06/03(日) 17:27:31
かわいいね!
>932 たしかに人に使うのは初めてだけども寝起きだったんで使い慣れない言葉使ってみた Whereは普通"どこで"だけど、この場合の"どこに"出したいのかもWhereでしょ、と思って
936 :
名無しさん@そうだ選挙にいこう :2007/06/03(日) 18:59:32
うぜえ
937 :
926 :2007/06/03(日) 22:41:54
>935 そうなんだ 勉強になった
938 :
名無しさん@そうだ選挙にいこう :2007/06/03(日) 23:00:17
こんばんわ 早速ですけど質問です。 WinXp EXCELL2003にて 他のBookの項目25000ほどのデータをVlookupで外部参照しているのですが Excel2003の問題で外部参照のデータが16376?を超えると保存するときに エラーがでてしまいます。 その為、2回に分けて参照するようにしたいのですが、 どういった記述にしたらいいでしょう? イメージとしてはもし1〜12500までに値が存在しなかったら 12501〜25000を外部参照するという形にしたいのですが・・・ 何か不足している説明ありましたらレスってください。 よろしくお願いします。
939 :
名無しさん@そうだ選挙にいこう :2007/06/04(月) 04:22:42
WindowsME上で動くExcelとPowerPointが欲しいんですが。。 MEで使える最後のバージョンは2002? 正規版ですが、どこかで手に入らないですかね?
Excel2002やPowerPoint2002は見あたらないが Office XP Standardならまだ結構あるじゃん XPってのが2002バージョンのスイートパッケージで 価格的にもExcel+PowerPointとOffice Standardは大差ない
941 :
名無しさん@そうだ選挙にいこう :2007/06/04(月) 11:28:01
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】可 【4 VBAでの回答の可否】 否 A B 1 10 1 15 1 20 2 1 2 6 2 8 2 10 3 1 3 2 3 9 Aの列の同一の数字を選んで該当するROWの中でMAXからMINを引く計算ってどう書いたらいいのでしょうか? 例えばA=1なら20-10=10 A=2なら10-1=9 A=3なら9-1=8 といった具合です
>>941 データ量はどれくらい?
ソートされてる?
>942 データは多いときで600ぐらいで群分けだと14です。ソートも可能です。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】勉強中 【4 VBAでの回答の可否】 可 ユーザーフォーム内に、テキストボックスの内容に反応して変わる文字列を表示できるでしょうか。 テキストボックスを一つ置いてあり、未入力と入力後で文字列の表示を変えたい、ということなのですが・・・。
>>944 どこの文字列の表示を変えるの?
テキストボックスのイベント使って
対象の文字列を変更すればいいのではないでしょうか
>>941 A列でソートされていて、1行目がタイトルとして
C2に =IF(A1=A2,IF(B2>C1,B2,C1),B2)
D2に =IF(A1=A2,IF(B2>D1,D1,B2),B2)
E2に =IF(A2=A3,"",C2-D2)
C2:E2を選択、オートフィル
>>941 A=1のとき
{=MAX(IF($A$2:$A$11=1,$B$2:$B$11,""))-MIN(IF($A$2:$A$11=1,$B$2:$B$11,""))}
A=2のとき
{=MAX(IF($A$2:$A$11=2,$B$2:$B$11,""))-MIN(IF($A$2:$A$11=2,$B$2:$B$11,""))}
A=3のとき
{=MAX(IF($A$2:$A$11=3,$B$2:$B$11,""))-MIN(IF($A$2:$A$11=3,$B$2:$B$11,""))}
大外にある{}は配列関数な
上のをそのままコピペしても{}は使えない
Ctrl+Shift+Enterで{}を出してくれ
一度に済ませたいのなら =IF(A2=A3,"",MAX(INDIRECT("B"& MATCH(A2,A$1:A2,0)&":B" & ROW()))-MIN(INDIRECT("B"& MATCH(A2,A$1:A2,0)&":B" & ROW())))
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel03 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可(VBAを使うしかないなら) 【5 検索キーワード 】 Excel ひらがな 小文字を大文字に セルに文章入力後、仮名の小文字部分が大文字に自動置き換えされるようにするにはどうすればよろしいでしょうか? 例.キャッキュバック→キヤツシユバツク SUBSTITUTEとかSEARCHとかその他いろいろ組み合わせて試してみましたが駄目でした
キャッキュバック
>どうすればよろしいでしょうか? 慣れない敬語はかえって失礼だよ
セルに文章入力後、仮名の小文字部分が大文字に自動置き換えされるようにするにはどうすればいいか教えろ 例.キャッキュバック→キヤツシユバツク ちなみにSUBSTITUTEとかSEARCHとかその他いろいろ組み合わせて試しても駄目だからな
953 :
803 :2007/06/04(月) 19:38:50
前に丸投げ依頼で似たようなの作ったな・・・
955 :
803 :2007/06/04(月) 22:04:53
>>954 はい!わりづらいから「書き直し」と言われて
書き直してきました・・・やはりわかりづらいですか?
>>953 過去のレスを一通り読んで、
>>953 のファイルを開いてみた。が、やはり意味不明。
申し訳ないが、人に理解してもらえる程度の文章力を養ってから
出直してもらえないだろうか。このままじゃ無駄なレスの応酬で
スレが汚れるのは目に見えてる。
しっかし、「商品名」欄に「場所名」が入っている辺りを見ると、表の設計にも
かなり問題ありそうだなぁ
957 :
803 :2007/06/04(月) 22:43:08
958 :
名無しさん@そうだ選挙にいこう :2007/06/04(月) 23:16:59
【1 OSの種類 .】 WindowsXP HE 【2 Excelのバージョン 】 Excel2003 決まった時刻から決まった時分(50分とか)を引いた時間を 出すにはどんな式を立てたらよいのでしょうか?
たとえば A1に決まった時刻を書いて A2に決まった時分を書いて A3に =A1-A2
決まってるんなら、ズバリ書いちゃえばいいじゃない。
961 :
名無しさん@そうだ選挙にいこう :2007/06/04(月) 23:29:19
>>959-960 決まった時間が55分なら0:55でやったら出来ました。
しかしその55分を表の中に記入しないでやる方法なんかは
無いでしょうか?
>>961 ちょっとWebやヘルプを見ればいくらでも答えが載ってる。
少しは自分で調べる努力をしてから質問してくれ。
963 :
944 :2007/06/04(月) 23:47:10
964 :
939 :2007/06/04(月) 23:58:05
>>940 ちょっと遅くなりましたが、ありがとうございます!
なるほどOffice XP Standardですか。
これを手に入れる事にします♪
965 :
名無しさん@そうだ選挙にいこう :2007/06/05(火) 00:14:47
保存しようとするとテンポラリーファイルで 保存されてしまっていちいち名前を変えないと いけないのですが、どうすればいいでしょうか?
>>965 どんなファイルを保存しようとしてもそうなるのか、特定のファイルだけそうなるのか。
967 :
名無しさん@そうだ選挙にいこう :2007/06/05(火) 00:49:32
特定のファイルです
968 :
925 :2007/06/05(火) 03:15:40
質問から音沙汰無しですみません、問題のほう解決致しました。
>>926 氏
ありがとうございました。
>>931 氏
すみません、手を抜くとかではなくvlookup自体を知らなかったのでどうすればいいか途方にくれていました。
社のデータは保護の上にパスがかかっていてfx関数自体を参照することができませんでした・・・。
>>967 読み取り専用属性でも付いてるんじゃないのか
>>965 まれになること有るな
本ファイルを改名して、テンポラリファイルを
本ファイル名にしてごまかしているよ。
私の場合、原因は、解明し切れていない。
>>968 シートやブックに保護が掛かっているなら、他のブックからそのブックを参照するようにすればよろし
参照元になるブックを開く
↓
新規ブックを開く
↓
新規ブックから参照元のブックを参照するように関数式を作る
参照セルをブック名を含めて
>>965 のように作るだけだ
新規ブックでイコール(=)を入力したら参照元のブック・シート・セルをクリックして選ぶだけで難しくは無い
とりあえずはこんなんで作成できるが、仕事であれば保護を掛けた奴に責任持ってやらせるのが一番だぞ
972 :
名無しさん@そうだ選挙にいこう :2007/06/05(火) 14:46:04
すんませんが、Excel2007で、グラフやオートシェイプの2色グラデーションを 設定する方法がわかりません。 以前のバージョンなら簡単にいけたんだけど。
>>972 書式>図形のスタイル>図形の塗りつぶし>グラデーション>その他のグラデーション
または
右クリック>図形の書式設定>塗りつぶし>塗りつぶし(グラデーション)
974 :
名無しさん@そうだ選挙にいこう :2007/06/05(火) 16:30:16
>>973 通りすがりの俺にも答えてくれてありがたい。
しかしながら、Excel2007からセルの色を「グラデーション」する機能が追加されたようだが、このときにプロパティ設定するときの
「塗りつぶし」フォームと同じような操作がしたい。
いわゆる2色選んで、グラデーションの方向を決めるだけの簡単なやつ。
教えてもらったやり方だと、グラデーション設定がむずいんですが、これからは、こういうものなんでしょーか?
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 ユーザーフォームでテキストボックスに記入された数字をキーに検索した結果を返すマクロを作っています。 検索部分は今のところ問題ないのですが、テキストボックスのchange をキーに自動化しようとすると、一桁打った時点で すぐに検索が始まってしまいます。 バーコードで数字を入力する場合もあるので、できれば自動化したいのですが、 例えば”24”のバーコードを入力した場合、別個の”2”と”4”と解釈するようです。 何かきっかけとして上手い手はありますでしょうか。
>>974 図形に対してはその形のグラデーションしか用意されてないから仕方がない。
セルの場合と方法が異なるのは、何らかの理由があるんだろうけど、
俺にはわかりません。以上。
977 :
名無しさん@そうだ選挙にいこう :2007/06/05(火) 18:56:25
>>975 キーの入力が終わったことを自動で判断させて検索を開始するってこと?
>>975 Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'Enterキーを押したら検索
If KeyCode = 13 Then Call 検索処理(TextBox1.Text)
End Sub
>>977 はい、そうです。
>>978 >>979 ありがとうございます。どちらでもうまくいきました。
親身にありがとうございました。大変勉強になりました!
質問です ボタンを押したら メニュー→ファイル→名前を付けて保存する→csv(カンマ区切り) を実行するようにできないでしょうか?
982 :
名無しさん@そうだ選挙にいこう :2007/06/06(水) 03:58:19
>>981 手っ取り早いのはマクロの記録を実行して
フォームのボタンにそのマクロを登録すればできます
>>982 そのボタンとマクロはどこに仕込むか。
CSVファイルには保存できない。
マクロをCSVに保存しろとは書いてない。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 触ったことないです 【4 VBAでの回答の可否】 出来ることなら否 excelのヘルプより >TREND 関数では、異なる指数でべき乗される同一の変数に対して回帰推定することで、 >多項式曲線に当てはめることができます。たとえば、列 A に y の値、列 B に x の値が >含まれているとします。列 C には「x^2」、列 D には「x^3」などのように入力し、列 B 〜 D を >列 A に対して回帰推定します。 上のやり方がわかりません TREND関数で線形的に値を予想することは出来たのですが 上のような多項式に当てはめるというのがどうもできません 分析ツールで分析して別のシートで作るのではなく TREND関数ひとつで多項式に当てはめて値を予想するには どのようにすればいいのでしょうか? それともVBAとか使わないと無理でしょうか? よろしくお願いします
=TREND(A1:A10,B1:D10,B11:D11) など、複数のXで予想しますってことだな
987 :
名無しさん@そうだ選挙にいこう :2007/06/06(水) 16:22:13
Excel2000を使っているんですが グラフを新しいシートに作成しようとしても 新しいシートには何も表示されません。 どのように設定すれば直るのでしょうか? お願いします。
一度ソフトを終了させて再起動。
989 :
987 :2007/06/06(水) 16:28:02
>>988 何回も再起動をしているのですが全く直りません。
データと同じシート上には表示できるので
何か設定の問題だと思うのですが。。
>>989 んー。そういう設定は記憶にないなあ。
データと同じシート上に作れるなら、右クリック>場所(またはグラフ>場所)で
変更できないか?
ブックの保護がかかっているってわけじゃないよね。
それならなにかしら文句が出るし。
991 :
987 :2007/06/06(水) 17:49:42
>>990 場所変更でも出てきませんでした。
再インストールしかないでしょうか。。
Excel 2000、2003 ともに 関数 EMONTH、EOMONTH を使用すると、 #NAME? としか表示されない。 アドイン 「分析ツール」は on(チェック済) どうすれば正常に機能するのか、次スレでもいいから教えてください。
たとえば =EOMONTH(DATE(2001,1,1),1) で動くけど
>>991 新しいブックで試してもダメ?
再インストールつーよりデータの問題のような気もしなくはないんだが。
手元で再現しないので、悪いがこれ以上はなんとも言いようがない。
996 :
名無しさん@そうだ選挙にいこう :2007/06/06(水) 20:46:50
123456の各桁の和をとり,1からその和までの整数の乱数を5000個発生させよ (rand() とint()を組み合わせて). ちっともワカンネ・・・おまいらおしえれください。
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。