• ベストアンサー

セルへの入力を簡単にしたい

エクセル2002で12x12=144マスに1から144までの数字を入れて迷路を作っています。A列にデータを144入れて、1と表示のマスに”=A1", 2のマスに”=A2", 3のマス”=A3" となるようにしたいのです。最初から”=A1"と打っていけば済むことですが、144もあるので数字だけの方が入力が楽なのです。マクロの記録を使うと列も変わってしまいます。138は”=A138"になってほしいのです。138のセル位置を読取ることができればいいのですが。いろいろと調べて試してみましたがどれもうまくいきません。よい方法があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

マクロで Public Sub addA() Dim x As Range For Each x In Selection x.FormulaLocal = "=A" & x.Value Next End Sub のようなプロシジャーを作成して、 12×12のマスを選択してから、マクロの実行からマクロを実行する。

ei60
質問者

お礼

早速のご回答ありがとうございました。BLUEPIXYさんの書かれた通りにしたらうまく変換できました。私にはまだこのプロシジャーがよくわかりませんが、ちょっと本やネットには載っていない内容ですごく助かりましたし勉強になりました。これまでやっていた入力が大幅に楽になります。もし、よければどんな本で勉強すればよいか教えてもらえませんか。本当に助かりました。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.5

#3>よければどんな本で勉強すればよいか マクロに関する本ですよね。 私は、Excel97 の時にマクロ事例集みたいな本を買いました。 なので、現在のどんな本を買えばいいかみたいなアドバイスはできないのですが、 基本的な文法と、事例集みたいな本がよろしいのではないかと思います。 だいたい、全てを網羅するような本はほとんどないと思いますが、 全てを網羅するような本は、あったとしても、読む気力が読む前になくなってしまいますので、「自分がこういうことをしたい」という方面の事例がなるべくたくさんの載っている本が良いのではないかと思います。 本に網羅されない部分は、多かれ少なかれあると思いますが エクセルのVBE画面でコード入力時にどのようなプロパティやメソッドがあるのかが表示されます、それをF1キーでヘルプを見ることができますので、そうしたヘルプを活用するのがよろしいかと思います。 あと、大抵の事例について、OKWaveのようなサイトで既に似たような質問があると思うので、そのような事例を見る(見ておく)のも良いと思います。

ei60
質問者

お礼

BLUEPIXYさん、たびたびの素早いご回答本当にありがとうございます。マクロの勉強のこと、参考書のこと、BLUEPIXYさんのおっしゃる通りだと思います。F1キーでヘルプ、OKWave、どちらも初めて知りました。今、VBAのおもしろさがわかってきたところですのでしっかり勉強していきます。本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

質問の表現について。 >エクセル2002 多分バージョンに関係ない事項。最後の注記で十分。 >12x12=144マス エクセルではマスといわずセルという セル(マス)列・行の有り様は? 後の表現からすると、A列1列のA1:A144のセルか。 >A列にデータを144入れて 連続したセルA1:A144か、飛び飛びのセルにか。 迷路は平面的なはずだが、なぜA列1列で良いのか。 セルは詰めるが、セルの値はランダムか。 >1と表示のマスに”=A1", 2のマスに”=A2", 3のマス”=A3" となるようにしたいのです 「表示」というより、「入力されたセル」とか、「値が1のセル」とかの表現がベター。 ○数(値)の入ったセルに関数式を入れると、値が壊れ、セルの元の 値が関数式で使えません。これはエクセルの常識。 >マクロの記録を使うと列も変わってしまいます どういうことを指しているか判らない。 >138のセル位置を読取ることができればいいのですが どういうことを指しているか判らない。A列には連続数でなくランダム数が入っているのですか。 ーーーーー推定ヒント ○A列には1-144の数(乱数)を入れたい(入れる)のですか であればB列に重複の少なクなる程度の十分な桁数の乱数を入れて 、B列でソートすると良い。私用する関数はRAND関数。 ○B列(あるいはどこでも)セルに =INDIRECT("A"&A1) といったことをしたいのではないでしょうか。

ei60
質問者

補足

早速のご回答ありがとうございました。指摘していただいて質問の要領がまずかったことよくわかりました。もっと具体的に的確に質問しなければ、回答者がとまどうこと痛感しました。何分エクセルの初心者な者ですが、それを差し引いてもわかりずらいものでした。今後、よく注意します。BLUEPIXYさんのやり方でうまくいけました。お世話かけました。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • redowl
  • ベストアンサー率43% (2140/4926)
回答No.2

質問内容で、今ひとつ理解し難い部分があり・・・ どういう数字迷路なのか解りませんが 12X12で構成されるセルの中に数式(=A◎)を入れておいて、A列の 数字(1~144)を  表示させたい。 12X12のセル内の数式は、ランダムにしたい。且つ、重複しないで数式を入れる方法、関数、マクロを教えて?ということでしょうか?

ei60
質問者

お礼

早速のご回答ありがとうございました。説明不足で申し訳ありません。BLUEPIXYさんのやり方でうまくいけました。お世話かけました。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

VBAで使うシートにボタンを貼り付けてダブルクリックして出てくるダイアログに下のコードを貼り付け。実行すると、A列の数字Xに併せて"=A(X)"と変換します。でもこれで何をしようとしているのかわからないのですが。一応簡単なコードのみ。 Private Sub CommandButton1_Click() Dim A(144) As Integer For i = 1 To 144 Worksheets("Sheet1").Cells(i, 1).Value = "=A(" & Worksheets("Sheet1").Cells(i, 1).Value & ")" Next i End Sub

ei60
質問者

補足

早速のご回答ありがとうございました。説明不足で申し訳ありません。A列にはデータとして、desk, dog, bag などの英単語が入ります。それを144のマスに配置して、日本語の順番(机、犬、かばん)にたどらせます。”=A3"としたマスにはbagが出るようにします。迷路をたくさん作りたいので入力を"3"だけで済ませて、そのマスに bag が出るようにしたいのです。、VBAも最近始めたばかりで本を見ながらためしています。マス目の中の"3"のセル位置を読取れれば、そこへ”=A3"と入れれるのですが。よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルで入力した数字と同数のセルを着色したい

    1~4の数字をエクセルの列に入力すると、自動的にその横のセルが数字分塗られるようにしたいのです。 具体的には、J1に1と入れると、K1ひとマスが青くなり、J2に4と入れると、K2,L2,M2,N2の4マスが青くなると言うように、数字を入れるとどの項目がどのレベルかと言うことが、表のように一目でわかるようにしたいのです。 マクロは全く素人ですので、わかるように教えて頂けると助かります。 皆様、宜しくお願い致します。

  • マクロ 空白セルへの文字入力

    A列が空白となるまでB列のとこどころに数字が入力されていて空白のセルへ0を入力する。 というマクロがどうしてもできないのですが、ご教示お願いします。

  • Excelで同一セル内に入力されているデータを他のセルに分割したい

    こんにちは。 宜しくお願い致します。 エクセルで同一セル内に、セル内改行で1~6列ほどのデータが入力されています。 A1セル~A100セル…という風に、縦にデータが入力されていて、それぞれのセルにセル内改行を含み、データが入力されているイメージです。 それぞれのセル内のデータを… 例えば、A1セル内に5行入力されていたら、A2セルから入力されている行数分(ここでいうと5行)挿入し、それぞれにデータを分割して入力させたいと思っています。 以下のセルも同様に、挿入→分割といった感じで全データを分割させたいのです。 OKWave内でもチェックして、 http://okwave.jp/qa1927817.html?ans_count_asc=2 や http://okwave.jp/qa4216384.html など、近いものはいくつか見つけたのですが、ピッタリのものが見つからず、マクロの編集もよくわからなかったのでこちらで質問させてもらいました。 どなたか申し訳ありませんが、教えていただけますか? 宜しくお願い致します。

  • 入力されるまで合計セルを空白にしたいのですが

    A5:A120にデータ入力し、A121に「Sum」で合計を だしています。B列からM列も同様になっています。 列のデータは1~0の数字だけです。 当該列のセルが未入力だと当然合計欄は「0」に表示 されています。 この場合、「0」が目障りなので、いずれかのセルにデータ が入力されない限り、空白表示にしておきたいのです。 どんな関数をどう使えば良いのでしょうか?

  • マクロを使って文字が入力されたセル数を数える

    マクロを用いて、文字が入力されたセル数をカウントしたいと考えていますがうまくいかず悩んでおります... 具体的には、セルB1からB1000にデータが入力された場合、左隣のA列に1から番号を付したいと考えています. B列が空白のままの行は、A列も空白にしておきたいです. (セルB1からB1000まで全てにデータが入力された場合、A1からA1000には1から1000までの番号が入る) また、A列に付された番号を判断し、100番毎にA列からE列までセル背景を色分けしていきたいと考えています. (B列が空白ならxlNoneでその行は無色のままにしたい) セル背景の色分けだけであればうまくいったのですが、B列の入力状況により自動でA列に番号(数字)を変化させたら思い通りに動かず困っています. ご教示、宜しくお願いします.

  • セル移動マクロを教えて下さい。

    エクセルで最終行の次の行(新規入力となる行)の左4つ目のセルに移動するマクロを作りたいのですが、出来るでしょうか。 例えば列Aに1から3000までのNOが入っているとします。 B列からD列までは他のデータに使用しているため新規入力データE列の行から右に入力しています。 NO125の行までデータ入力している場合、ボタンをクリックすれば、A列のNO126(新規入力行のA列)にセルが移動するマクロです。 よろしく、お願いいたします。

  • VBA 検索したセルに入力

    ExcelのVBAを使用して データの入力されたファイルに行列から検索したセルに数値を入力したいのです。 例えば、名前(行)と、日付(列) 2つの条件で、セルを検索し、該当するセルに、データ(数字とか)を 入力したいのです ------------------------------------  6/1 6/2 6/3 6/4 ・・・ a b c ・ ・ ------------------------------------ 例えば、A5に名前、B5に日付、データエリアがB10:Z20の場合 =INDEX(B10:Z20,MATCH(A5,A10:A20,0),MATCH(B5,B9:Z9,0)) で、該当するセルを探すことはできたのですが、 このセルに、データを入力したいときは、 ROWやCOLUMNで、行番号、列番号を取り出して Cellsで、入力すればいいのかな?と考えていますが もっと簡単にできるのでしょうか? (FIND関数は、使ったことがなく、どうなんだろう?と) それでいいよ とか、こっちの方が簡単 とかあれば、教えてください 

  • 関数中にセルに入力した値を反映させて計算を行いたい

    こんにちは Excelを用いた計算を行っているのですが 自分の知識では出来なかったために皆様の知恵を借りたいと思っています Excelで単純な足し算を行いたいのですが とあるセルに入力した値によって計算範囲を変更したものを作りたいと考えています 仮にA行1列からA行20列まで各セルに1,23…20と順番に1つの数字が各セルに入力されていたとします この時, B行1列のセルに5という数字が入力されていたら C行1列にA行1列数字とA行5列の数字の和が入力される (イメージとしたら結果として1+5より6が出力される) B行1列のセルに10という数字が入力されていたら C行1列にA行1列数字とA行10列の数字の和が入力される (イメージとしたら結果として1+10より11が出力される) ような関数を作りたいと考えています 自身の甘い考えで B行1列のセルに5という数字が入力されていたら C行1列にA行1列数字とA行5列の数字の和が入力されるのは C行1列に=A1+A(B1)と入力したら出来るのではないかと考えていたのですが どうもできないみたいです なにか方法等浮かぶ方がいらしましたら回答をお願いします

  • 現在のセルから

    エクセルでマクロを使って、記録して、自分でいじってるんですが、汎用性を持たせるために、”現在のセルから”という条件で以下のようなマクロを組たいと思っているのですが、絶対位置で記録されてしまうため、うまくいきません。 教えて頂けると幸いです。 1、現在のセルから右に5列、下に5列をコピーして 下6列目に、コピーしたセルを挿入する 2、現在のセルから下に13行目まで1を挿入。同じ列の14行目+7行まで2を挿入。 その後も最後の行(その行以降は全て空白のセルになる行)まで13、7、13、7と13と7を行数を交互に挿入し,それぞれ3、4、5と数字を一つ増やしながら埋めていく方法。 1-13行=1 14-21=2 22-35=3 36-23=4 以下略

  • セルの移動(マクロ)

    今晩は! お世話になります。 エクセルで多量データ(500行以上)あります。 本来ならば、データ量が多い場合、アクセスを使用した方が良いのかもしれませんが、データを元にグラフ作成等行う為、エクセル使用しています。  そこで、500行以上の次行に入力する際、スクロールするのは面倒なので、ボタン一つで入力する先頭行に移行するマクロを作成したいのですが、まだ自分でプログラムを作成するのは難しく、本などで同じ目的のマクロを見つけ、移している程度です。 今回、同じ目的のマクロが見つからず、ショートカットキーで行うやり方の必ず漏れがなく入力される列(No.「A列」)にセルを選択し、”Ctrl+↓”で入力済みの最後尾に移動。その後”Enter"で次行、入力するセルに移るという事で、この行動を”マクロの記録”をしてみました。 マクロの記録 ~(A4「No.1」)のセルを選択 ~ ”Ctrl+↓” ~ ”Enter"   の順です。 例にA4=No.1でA4~A6(No.1~No.3)まで記入しました。  標準モジュールの内容は・・・ Sub セルの移動() ’ ’セルの移動Macro ’マクロ記録日 : XXXX / X / XX ユーザー名:XXXXXXX ’ ’Keyboard  Shortcut:Ctrl+t ’   Range("A4").Select   Selection.End(xlDown).Select   Range("A7").Select End Sub ・・・と記入されています。 ですが、これでは Range("A7").Select と”A7”と指定されている為、 A7以降の行が入力されていても A7 に移行してしまいます。  これをA列のNo.(連番)が記入されている次行(連番が未記入の先頭行)に移動させるにはどこをどう修正すれば良いのでしょうか? お手数お掛けしますが、上記希望内容に相応しいプログラムのを教えて頂けると助かります。 初心者の為、宜しくお願いします。

このQ&Aのポイント
  • バンキングアプリから定期預金の払出ができない理由について解説します。
  • 以前は出し入れ自由だった定期預金が、なぜ払出ができなくなってしまったのか、その背景や理由をご説明します。
  • バンキングアプリの定期預金に制限がかかる場合、その原因や解決策について詳しく解説します。
回答を見る

専門家に質問してみよう