how can I put list box column to array?
As noted by others, a list-box provides an ARRAY of rows that can contain one or more fields (columns). Yes, that makes it a 2-dimensional array, and though the syntax is messy, it works just fine.
When you have a populated list-box, you can directly address it as though it were an array. Therefore, trying to load your data to an array seems at first glance that you are trying to do the same work twice on the same data. Further, unless you are using "cascaded combo-box" techniques on the list-box, it would probably be statically defined and therefore would be a relatively stable array.
How can I use this array in query for example in cretieria (in (Array))
In a very strict sense, you cannot. The SQL engine, whether it is Jet or ACE or SQL Server, will be in a different memory segment and different task than the VBA code, and thus that array is invisible to the query engine, whatever it is.
However, if this array came from a listbox then it potentially can come from an ordinary query (since a list-box's .Rowsource IS a query). If you can make a
named query to match the .Rowsource, then you can in theory make a SELECT query that includes a
WHERE XYZ IN (SELECT ZYX FROM MyRowSourceQuery) (and of course whatever else needs to be in the WHERE clause).
I suppose you are thinking that having the array would make something faster - but the fastest thing you are likely to get would be to use a query to reference an IN clause.